MVC中的布局頁和WebForm中的母版頁的作用是一樣的。
1、MVC中的布局頁(Razor)圖解教程。
我暫時先放在Views文件夾下的Shared文件夾中。在Shared文件夾上右鍵 - - - - ->添加- - - - ->選擇MVC4布局頁(Razor)。新建立的頁面布局頁如下:
2、引用上面創建的布局頁。
在控制器方法上右鍵選擇添加視圖,在彈出的對話框中視圖引擎選擇Razor(CSHTML)、下面選擇使用布局模板頁。
新建好的Razor視圖界面如下:把布局頁也引出來了。
3、分析一下布局頁和Razor視圖的關系。
根據上圖可以看出在布局頁中有一個 “@RenderBody()”,你可以理解成這是布局頁留下的一個坑,而Razor視圖頁面中所有寫的內容都將填入到布局頁留的坑中。看下圖可以驗證一下。
我在布局頁中添加了導航屬性和底部的版權。
我在Razor中隨便寫一點內容,驗證一下所寫的內容是否是填入了布局頁中的@RenderBody()的坑中。
我在瀏覽器地址欄中輸入 域名/Home/ShowLayOutPage的時候,會把Razor視圖中的內容渲染出來,如下:
從上圖可以看出我只在Razor視圖中輸入的內容是 今天天氣好晴朗,真適合出去跑着玩!,而紅色字體則是布局頁中加的,因此可以證明是填布局頁中的@RenderBody坑。
還可以通過在Razor視圖中檢查網頁源代碼進行查看,由下圖還可以證明。
4、還可以在布局頁繼續挖坑,比如在頭部和腳部挖坑,然后在子頁填坑填入相應的內容。語法:@RenderSection(參數);
在子頁實現這個坑。語法:@section 坑名字{ }
End。