MVC架構筆記

來源:互聯網
上載者:User

標籤:ext   custom   too   models   set   應用程式   view   fill   raw   

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架構筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.