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
- public class Dog
- {
- public int ID { get; set; }
- public string Name { get; set; }
- public override string ToString()
- {
- return "ID=" + this.ID +",Name=" + this.Name ;
- }
- }
(2)先在controller层写相应的代码
[csharp] view plain copy
- //控制器类(继承了Controller)
- public class HomeController : Controller
- {
- #region 0.1初始化数据集合 void IntData()
- /// <summary>
- /// 初始化数据集合
- /// </summary>
- public List<Models.Dog> IntData()
- {
- List<Models.Dog> list =new List<Models.Dog >() {
- new Dog(){ ID=1,Name ="小样~~" },
- new Dog(){ ID=2,Name ="小样2~~" },
- new Dog(){ ID=3,Name ="小样3~~" },
- new Dog(){ ID=4,Name ="小样4~~" },
- };
- return list;
- }
- #endregion
- // GET: /Home/
- /// <summary>
- /// Action方法(可堪称MVC设计模式的Model
- /// </summary>
- /// <returns></returns>
- public ActionResult Index()
- {
- System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);
- //2.1处理当前业务(比如读取数据库。判断等)
- //2.1.1创建一个数据集合(伪数据,并获得数据
- List<Models.Dog> list = IntData();
- //2.1.2遍历集合,生成HTNL代码,存入builder
- list.ForEach (d => {
- sbHtml.Append("<div>" + d.ToString() + "</div>");
- });
- //2.2使用viewBag传输数据给同名Index.cshtml 视图
- //viewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值
- ViewBag.HtmlStr = sbHtml.ToString();
- return View();
- }
- }
(3)最后在view层显示数据
[csharp] view plain copy
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content ="width=device-width" />
- <title>Index</title>
- </head>
- <body>
- <!-- 相当于把Action中的内容,存放在此处 输出!-->
- @Html.Raw(ViewBag.HtmlStr)
- </body>
- </html>
(4)运行效果图
时间: 2024-12-08 15:27:25