zoukankan      html  css  js  c++  java
  • MVC模式

    MVC模式

    MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
      通常模型对象负责在数据库中存取数据。

    View(视图)是应用程序中处理数据显示的部分。
      通常视图是依据模型数据创建的。

    Controller(控制器)是应用程序中处理用户交互的部分。
      通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

    V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。

    M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

    C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

    ASP.NET MVC

     3、MVC小例子

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

    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层写相应的代码

     
    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层显示数据

     
    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)运行效果图

                                    

  • 相关阅读:
    通过SSIS监控远程服务器Windows服务并发送邮件报警!
    通过SSIS监控远程服务器磁盘空间并发送邮件报警!
    Jquery和雅虎的YQL服务实现天气预报功能!
    表字段或表名出现Mysql关键字或保留字导致问题 Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
    Mybatis对象关系映射 one2one,one2many,many2many
    事务的传播属性及隔离级别 Spring
    正整数的二进制表示中1的个数计算(使用移位或者n&(n-1))
    char类型及ASCII码之间比较
    数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出
    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7675630.html
Copyright © 2011-2022 走看看