2014-12-20 74 views
1

我正在試圖查看某個節是否在視圖中定義並使用,如果是的話。IsSectionDefined返回輸出值

我做:

@IsSectionDefined("title") ? RenderSection("title",true) : <title>@Viewbag.Title</title> 

然而,這是回報社會的價值,例如打印 「真的嗎?」在我看來

我能做到這一點,如:

@if(IsSectionDefined("title")) 
{ 
    RenderSection("title",true) 
} 
else 
{ 
    <title>@ViewBag.Title</title> 
} 

不過,我覺得上面是醜......,想做到這一點的第一種方式......

有誰知道如何我可以使用第一種方法但不打印IsSectionDefined的值?

回答

1

你的第二種方法與if是完全正確的,所以你應該堅持下去。

但是,如果你想使用條件操作符,你必須做一些調整。 主要問題是RenderSection返回HelperResult,所以您的條件的其他部分也必須返回HelperResult

解決這個你的觀點的邏輯移動到剃刀輔助函數將返回一個HelperResult可以在有條件的經營者使用的最簡單的方法:

@helper DisplayTitle() 
{ 
    <title>@ViewBag.Title</title> 
} 

@(IsSectionDefined("title") ? RenderSection("title",true) : DisplayTitle()) 
+0

非常有趣非常感謝! –