MVC——入門+簡單的小實例


MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controler)的縮寫,一種軟件設計典范,用於組織代碼用一種業務邏輯和數據顯示分離的方法。

1.最上面直接面向用戶的"視圖層"(View)。它是提供給用戶的操作界面。

2.最底層核心的"數據層"(Model),也就是程序需要操作的數據或信息。

3.中間層是"控制層"(Controller),它負責根據用戶從"視圖層"輸入的指令,選取"數據層"中的數據,然后對其進行相應的操作,產生最終結果。

 

MVC就像有點類似於食堂,可以分成三部分。一部分是倉庫,負責提供蔬菜等原材料,這是"數據層"(Model);另一部分是賣飯窗口,這是它的"視圖層"(View),負責銷售飯菜;兩者之間是通過廚師這個"控制層"(Controller)將原材料從“倉庫”中取出,處理加工后放到“窗口”上賣。

下面就通過一個小例子進一步說明MVC的中三層的各自的作用以及交互。

1.新建mvc項目。

2.在Models文件夾下新建一個user類,用於模擬數據。

public class user  {   public string userName {get;set; }   public string passWord{get;set;}   public override string ToString ()   {    return "userName="+this.userName+",passWord="+this.passWord;   }  }

3.在Controllers文件夾下新建一個控制器,用於從獲取user.cs中數據,並將處理后數據傳給Index.cshtml視圖。

namespace MyMvcTest.Controllers
{
 public class MyUserController : Controller  {   //   // GET: /MyUser/   public List<Models.user> InitData()   {    List<Models.user> list = new List<Models.user>()    {     new Models.user(){userName="1",passWord="1"},     new Models.user(){userName="2",passWord="2"},     new Models.user(){userName="3",passWord="3"}    };    return list;   }   public ActionResult Index()   {    //創建一個StringBuilder    System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);    //初始化數據    List<Models.user> list = InitData();    //從list中獲取數據並存入到sbHtml中    list.ForEach(d =>    {     sbHtml.AppendLine("<div>"+d.ToString()+"</div>");    });    //利用ViewBag傳輸數據給同名的index.cshtml視圖    ViewBag.HtmlStr = sbHtml.ToString(); //ViewBag是一個dynamic類型集合,可以動態添加任意類型的任意名稱的屬性和值    return View();   }  } }

4.添加視圖,用於將數據顯示到Index.cshtml視圖中。

@{  Layout = null;}

<!DOCTYPE html> <html> <head>  <meta name="viewport" content="width=device-width" />  <title>Index</title> </head> <body>  <div>
<!--綁定html代碼,過濾html 標記-->

@Html.Raw(ViewBag.HtmlStr) </div> </body> </html>

5.配置路由,設置新添加的視圖為默認啟動視圖,在App_Start文件下找到RouteConfig.cs文件進行修改。

總結: View提供給操作界面, Model提供程序需要操作的數據或信息, Controller負責對數據加工並傳入到到view中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM