Asp.net MVC項目中有不少默認約定。包括控制器約定、視圖約定等等。html
一、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
一、視圖或分部視圖要放置在/Views/Controllername文件夾中;htm
例如,HomeController的視圖老是放在/Views/Home文件夾裏面;接口
固然,熟悉了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。其默認查找視圖的順序以下:
一、佈局文件須要添加"_"前綴。而且存放在/Views/Shared文件夾下。當咱們建立視圖時,默認會使用_Layout.cshtml做爲佈局模板。
若是不想要模板的單頁面,能夠選擇"不使用母版頁",或在頁面頂部加入以下代碼
1
2
3
|
@{
Layout =
null
;
}
|