ASP.Net MVC @RenderSection注意事项
_Layout.cshtml:
<div class="container body-content">
@RenderBody()
<hr />
@RenderSection("footer", required: false)
</div>
在_ViewStart中添加@Section footer{}会报错:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section footer
{
}
发生错误的原因:
_ViewStart是一个来自ViewStartPage而不是WebViewPage的其他视图派生的特殊视图。而ViewStartPage类没有DefineSection方法.所以你不能在这个文件中定义段。
解决办法:
在其他View中添加@Section,_layout.cshtml中加入IsSectionDefined方法。
<div class="container body-content">
@RenderBody()
<hr />
@if (!IsSectionDefined("footer"))
{
@DateTime.Now.ToString()
}
else
{
@RenderSection("footer", required: false)
}
</div>