我试图查看是否在视图中定义了一个部分,如果是,则使用它。
我在做:
@IsSectionDefined("title") ? RenderSection("title",true) : <title>@Viewbag.Title</title>
然而,这是回馈价值,例如印刷&#34; True?&#34;在我看来
我可以这样做:
@if(IsSectionDefined("title"))
{
RenderSection("title",true)
}
else
{
<title>@ViewBag.Title</title>
}
但是,我觉得上面的内容很丑陋......并希望第一种方式......
任何人都知道如何使用第一种方法但不打印IsSectionDefined
的价值?
答案 0 :(得分:1)
你使用if
的第二种方法非常好,所以你应该坚持下去。
但是,如果要使用条件运算符,则必须进行一些调整。
主要问题是RenderSection
会返回HelperResult
,因此条件的其他部分也必须返回HelperResult
。
解决此问题的最简单方法是将视图逻辑移动到Razor辅助函数中,该函数将返回条件运算符中可以使用的HelperResult
:
@helper DisplayTitle()
{
<title>@ViewBag.Title</title>
}
@(IsSectionDefined("title") ? RenderSection("title",true) : DisplayTitle())