标签:set 效率 string 封装 视图 大型网站 添加 三元 head
参考:《设计模式》
http://blog.csdn.net/u010168160/article/details/43150049
百度百科
引言:
类的模型/视图/控制器(M o d e l / Vi e w / C o n t r o l l e r)三元组( M V C )被用来 构建用户界面。
透过MVC 来看设计模式将帮助我们理解“模式”这一术语的含义。 M V C包括三类对象。模型 M o d e l是应用对象,视图 Vi e w是它在屏幕上的表示,控制器 C o n t r o l l e r定义用户界面对用户输入的响应方式。不使用 M V C,用户界面设计往往将这些对象 混在一起,而M V C则将它们分离以提高灵活性和复用性。
M V C通过建立一个“订购/通知”协议来分离视图和模型。视图必须保证它的显示正确地 反映了模型的状态。一旦模型的数据发生变化,模型将通知有关的视图,每个视图相应地得 到刷新自己的机会。这种方法可以让你为一个模型提供不同的多个视图表现形式,也能够为 一个模型创建新的视图而无须重写模型。
内部工作原理:
MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。
小例子:
model层
public class Dog { public int ID { get; set; } public string Name { get; set; } public override string ToString() { return "ID=" + this.ID +",Name=" + this.Name ; } }
control层
//控制器类(继承了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(); } }
view层
@{ 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>
输出结果:
小结:
对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使你的软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。
标签:set 效率 string 封装 视图 大型网站 添加 三元 head
原文地址:http://www.cnblogs.com/lyggqm/p/7098556.html