日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MVC3 Razor @RenderSection

發布時間:2023/12/19 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC3 Razor @RenderSection 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mvc3的Razor視圖引擎還提供了@RenderSection

我的理解:@RenderSection在母版頁中占個位,然后讓使用此母版頁的子頁自己去呈現他們的Section。

在母版頁_Layout.cshtml中定義@RenderSection("Section名")

<body>
????<div?id="header">@{Html.RenderAction("Menu",?"Global");}</div>
????<div?id="sideBar">
??????@RenderSection("SubMenu")
????</div>
????<div?id="container">@RenderBody()</div>
????<div?id="footer">@{Html.RenderAction("Footer",?"Global");}</div>
</body>

?

添加一個About.cshtml,使用_Layout.cshtml做母版頁

然后就可以在About.cshtml中定義"SubMenu"要呈現的內容

@{
????ViewBag.Title?=?"About";
?}

?@section?SubMenu{
????Hello?This?is?a?section?implement?in?About?View.
?}

這里我在About.cshtml中實現了SubMenu,運行結果

?

但是當如果使用了_Layout.cshtml做母版頁的頁沒有實現Section的話,

譬如我新建的Index.cshtml沒有實現@section SubMenu{...},就會拋出異常

?

這是因為我在_Layout.cshtml中使用的是@RenderSection("SubMenu")他要求所有子頁都要實現,

可以使用它的另外一個重載@RenderSection("SubMenu",false),第二個參數代表它不是必須的,就不會拋出異常。

?

還有,當我在母版頁中定義了@RenderSection("SubMenu",false)的時候,我希望當所有子頁都沒有實現這個Section

的時候,母版頁可以有自己的呈現內容,就可以用

?

<div?id="sideBar">
???????@if?(IsSectionDefined("SubMenu"))
????????{
????????????@RenderSection("SubMenu",?false)
????????}
????????else
????????{
????????????<p>SubMenu?Section?isnot?defined!</p>
????????}
?</div>

?這樣當沒有任何頁面呈現Section的時候,就會默認顯示定義的內容。

?

還有一種比較靈活的方法,通過擴展方法來實現

publicstaticclassUtility
????{
????????publicstaticHelperResult?RenderSection(thisWebPageBase?page,?stringsectionName,?Func<object,?HelperResult>defaultContent)
????????{
????????????if(page.IsSectionDefined(sectionName))
????????????{
????????????????returnpage.RenderSection(sectionName);
????????????}
????????????else
????????????{
????????????????returndefaultContent(null);
???????????????
????????????}
????????}
????}

?

?在母版頁中

@this.RenderSection("SubMenu",?@<div>defaultsection?content</div>)

?

?OK了!沒有呈現Section時,就默認顯示<div>default?section?content</div>.

?

原文來自:http://www.cnblogs.com/dragon_mail/archive/2011/06/30/2094884.html

轉載于:https://www.cnblogs.com/acafaxy/archive/2012/04/27/2473877.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的MVC3 Razor @RenderSection的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。