首页 > 代码库 > MVC框架笔记

MVC框架笔记

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
三层架构和MVC是有明显区别的
通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。   
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。 
MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,
控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。

这里写一个小例子

       (1)先在model层写一个Dog实体类

 

 

[csharp] view plain copy
 
  1. public class Dog  
  2. {  
  3.     public int ID { get; set; }  
  4.     public string Name { get; set; }  
  5.   
  6.     public override string ToString()  
  7.     {  
  8.         return "ID=" + this.ID +",Name=" + this.Name ;  
  9.     }  
  10. }  

       (2)先在controller层写相应的代码

 

 

[csharp] view plain copy
 
  1. //控制器类(继承了Controller)  
  2.    public class HomeController : Controller  
  3.    {  
  4.        #region 0.1初始化数据集合 void IntData()  
  5.        /// <summary>  
  6.        /// 初始化数据集合  
  7.        /// </summary>  
  8.        public List<Models.Dog> IntData()  
  9.        {  
  10.            List<Models.Dog> list =new List<Models.Dog >()  {  
  11.                new Dog(){ ID=1,Name ="小样~~" },  
  12.                new Dog(){ ID=2,Name ="小样2~~" },  
  13.                new Dog(){ ID=3,Name ="小样3~~" },  
  14.                new Dog(){ ID=4,Name ="小样4~~" },  
  15.            };  
  16.            return list;  
  17.        }  
  18.  
  19.        #endregion  
  20.   
  21.        // GET: /Home/  
  22.        /// <summary>  
  23.        /// Action方法(可堪称MVC设计模式的Model  
  24.        /// </summary>  
  25.        /// <returns></returns>  
  26.        public ActionResult Index()  
  27.        {  
  28.            System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);  
  29.            //2.1处理当前业务(比如读取数据库。判断等)  
  30.            //2.1.1创建一个数据集合(伪数据,并获得数据  
  31.            List<Models.Dog> list = IntData();  
  32.            //2.1.2遍历集合,生成HTNL代码,存入builder  
  33.            list.ForEach (d => {  
  34.                sbHtml.Append("<div>" + d.ToString() + "</div>");  
  35.                  
  36.            });  
  37.            //2.2使用viewBag传输数据给同名Index.cshtml 视图  
  38.            //viewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值  
  39.            ViewBag.HtmlStr = sbHtml.ToString();  
  40.   
  41.            return View();  
  42.        }  
  43.    }  

       (3)最后在view层显示数据

 

 

[csharp] view plain copy
 
  1. @{  
  2.     Layout = null;  
  3. }  
  4.   
  5. <!DOCTYPE html>  
  6.   
  7. <html>  
  8. <head>  
  9.     <meta name="viewport" content ="width=device-width" />  
  10.     <title>Index</title>  
  11. </head>  
  12. <body>  
  13.     <!-- 相当于把Action中的内容,存放在此处 输出!-->  
  14.     @Html.Raw(ViewBag.HtmlStr)  
  15. </body>  
  16. </html>  

       (4)运行效果图

 

                                技术分享

MVC框架笔记