MVC基礎知識整理(一)

NO IMAGE

MVC是一種輕量級的替代方案。輕量級的,可測試性高的框架,擁有ASP.NET所有已知的特性,比如母版頁、安全性和認證。

一、MVC是對Web Form的一種輕量級的替代方案

  • 倆者的本質是請求Url不同,MVC是將請求交給控制器處理,而Web Form是將請求交給請求頁的後臺文件(.cs文件的Page_load)處理。
  • MVC更方便,效率更高

二、MVC的請求流機制

  • 首先獲取控制器;
  • 接著依賴行為控制器創建Model對象,Model通過轉換調用數據訪問層;
  • 最後數據填充Model後,傳遞到View顯示層,實現顯示目的。

三、命名規範

  • Controllers: 控制器創建的控制器必須以Controller結尾,控制器裡有若干行為(方法)控制相應的頁面,相應的操作;
  • View: 控制器HomeController創建後,View層會自動創建對應Home文件夾,來存放相對行為的視圖;
  • Model:視圖模型,以ViewModel結尾,例如:HomeViewModel,也叫業務模型,與數據訪問層的數據模型經行交互,返回用戶所需要的數據

四、如何獲取頁面傳過來的參數值

  • ?號傳參
    location.href ="Index?id="+id
    public ActionResuLt Index(string id)
{
string id = Request["id"].toString();//get post
string id = Request.QueryString["id"];//get
string id = Request.Files["id"].ToString();
}
  • 路由傳參
    location.href ="Index/id"
    public ActionResuLt Index(string id)
{
string id =RoutoData.Values["id"]//get post
}

五、返回視圖

    public ActionResult Index()
{
return View();//返回默認的視圖,即和方法名一樣的View視圖
return View("Show")//返回在同一視圖文件夾下的Show視圖
return VIew("`/Views/Shop/ShopList")//返回指定路徑的視圖
}

六、Razor語法

  • 對於Razor語法,特別的簡單,就是使用@符號即可。在@後面編寫C#代碼即可

七、從後臺設定值,並在頁面顯示

    public ActionResult Index()//後臺
{
ViewBag.name = "張三"
list <Users> lis = new list<Users>();
lis.Add(new Users{id=1,name="小花"});
lis.Add(new Users{id=1,name="小草"});
ViewBag.list = lis;
//另一種像視圖傳遞Model
retrun View(lis);
}
    HTML//前臺
@ViewBag.name
@foreach(var item in @ViewBag.list)
{
@[email protected];
}
//另一種像視圖傳遞Model
@model IEnumerable<UI.Models.UsersModel>
@foreach (var item in Model)
{
@[email protected]
}

相關文章

[iOS]解決

使用MLeaksFinder檢測項目內存洩露總結

通過mysql工具能連接上docker下的mysql,部署的工程連接就報錯。

YYCache源碼學習