ASP.NET MVC 3 已經(jīng)正式發(fā)布一段時(shí)間了,現(xiàn)在估計(jì)許多人都在拼命學(xué),我也不能例外,剛剛看到了一篇文章,介紹了三個(gè)非常有用的方法:RenderBody,RenderPage和RenderSection,現(xiàn)在自己再總結(jié)下。 1. RenderBody 在Razor引擎中沒(méi)有了“母版頁(yè)”,取而代之的是叫做“布局”的頁(yè)面(_Layout.cshtml)放在了共享視圖文件夾中。在這個(gè)頁(yè)面中,會(huì)看到標(biāo)簽里有這樣一條語(yǔ)句: @RenderBody() 其實(shí)它的作用和母版頁(yè)中的服務(wù)器控件類(lèi)似,當(dāng)創(chuàng)建基于此布局頁(yè)面的視圖時(shí),視圖的內(nèi)容會(huì)和布局頁(yè)面合并,而新創(chuàng)建視圖的內(nèi)容會(huì)通過(guò)布局頁(yè)面的@RenderBody()方法呈現(xiàn)在標(biāo)簽之間。 這個(gè)方法不需要參數(shù),而且只能出現(xiàn)一次。 2. RenderPage 從名稱可以猜出來(lái)這個(gè)方法是要呈現(xiàn)一個(gè)頁(yè)面。比如網(wǎng)頁(yè)中固定的頭部可以單獨(dú)放在一個(gè)共享的視圖文件中,然后在布局頁(yè)面中通過(guò)這個(gè)方法調(diào)用,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) @RenderBody() 代碼簡(jiǎn)潔直觀,另外似乎帶下劃線的視圖文件有特殊含義,以后再研究吧。 3. RenderSection 布局頁(yè)面還有節(jié)(Section)的概念,也就是說(shuō),如果某個(gè)視圖模板中定義了一個(gè)節(jié),那么可以把它單獨(dú)呈現(xiàn)出來(lái),用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) @RenderBody() @RenderSection(“footer”) 當(dāng)然還要在視圖中定義節(jié),否則會(huì)出現(xiàn)異常: @section footer { Footer Here } 為了防止因缺少節(jié)而出現(xiàn)異常,可以給RenderSection()提供第2個(gè)參數(shù): @RenderSection(“footer”, false) 英文原文網(wǎng)址:http://www./ShowArticle.aspx?ID=636
RenderBody 在Razor引擎中沒(méi)有了“母版頁(yè)”,取而代之的是叫做“布局”的頁(yè)面(_Layout.cshtml)放在了共享視圖文件夾中。在這個(gè)頁(yè)面中,會(huì)看到<body>標(biāo)簽里有這樣一條語(yǔ)句: @RenderBody() 其實(shí)它的作用和母版頁(yè)中的<contentplaceholder>服務(wù)器控件類(lèi)似,當(dāng)創(chuàng)建基于此布局頁(yè)面的視圖時(shí),視圖的內(nèi)容會(huì)和布局頁(yè)面合并,而新創(chuàng)建視圖的內(nèi)容會(huì)通過(guò)布局頁(yè)面的@RenderBody()方法呈現(xiàn)在<body>標(biāo)簽之間。 這個(gè)方法不需要參數(shù),而且只能出現(xiàn)一次。 RenderPage 從名稱可以猜出來(lái)這個(gè)方法是要呈現(xiàn)一個(gè)頁(yè)面。比如網(wǎng)頁(yè)中固定的頭部可以單獨(dú)放在一個(gè)共享的視圖文件中,然后在布局頁(yè)面中通過(guò)這個(gè)方法調(diào)用,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) @RenderBody() 代碼簡(jiǎn)潔直觀,另外似乎帶下劃線的視圖文件有特殊含義,以后再研究吧。 RenderSection 布局頁(yè)面還有節(jié)(Section)的概念,用于單獨(dú)呈現(xiàn)視圖模板中定義的一個(gè)節(jié),用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) @RenderBody() @RenderSection(“footer”) 當(dāng)然還要在視圖中定義節(jié),否則會(huì)出現(xiàn)異常: @section footer { <b>Footer Here</b> } 為了防止因缺少節(jié)而出現(xiàn)異常,可以給RenderSection()提供第2個(gè)參數(shù): @RenderSection(“footer”, false) 參考資料 http://blog.sina.com.cn/s/blog_55e55fcb0100oc8b.html |
|
來(lái)自: 修行的嘟嘟 > 《軟件開(kāi)發(fā)》