Asp.net MVC中的約定

Asp.net MVC項目中有不少默認約定。包括控制器約定、視圖約定等等。html

1、控制器約定


一、Controller必須是非靜態類c#

二、Controller必須實現接口IControlleride

三、控制器的類名必須以Controller結尾;如HomeController;佈局

以下面是一個標準Controller:spa

1
public  class  HomeController : Controller

四、項目中引用控制器時,例如使用HTML RenderAction方法時,只須要指定前半部分的名稱;例如Home;.net

1
@Html.RenderAction("Check", "Home", null);    //Home是Controller

五、能夠本身實現IControllerFactory接口建立你定製的約定;code

2、視圖約定


一、視圖或分部視圖要放置在/Views/Controllername文件夾中;htm

例如,HomeController的視圖老是放在/Views/Home文件夾裏面;接口

2.png

固然,熟悉了MVC以後,是能夠定製Views的路徑的。ci

二、Action方法默認的視圖與Action同名;

例如,HomeController裏有一個Content的Action,則Content的默認視圖是/Views/Home/Content.cshtml。

咱們在調用的時候,若是不傳遞參數return View();那麼默認使用的是Content視圖。若是咱們但願使用其餘視圖,則能夠將視圖名稱參數傳入,如return View("index");這樣就使用/Views/Home/Index視圖呈現。

三、查找視圖的順序

Asp.net MVC查找視圖路徑的默認順序是:

一、/Views/ControlloerName/;

二、/Views/Shared/;

若是以上兩個地方都沒有查找到視圖,則報錯;

如,咱們訪問/Home/Content。其默認查找視圖的順序以下:

1.png

3、佈局的約定


一、佈局文件須要添加"_"前綴。而且存放在/Views/Shared文件夾下。當咱們建立視圖時,默認會使用_Layout.cshtml做爲佈局模板。

若是不想要模板的單頁面,能夠選擇"不使用母版頁",或在頁面頂部加入以下代碼

1
2
3
@{
     Layout =  null ;
}

出處:Asp.net MVC中的約定

相關文章
相關標籤/搜索