標籤: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
- 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)運行
MVC架構筆記