ASP.Net MVC @RenderSection在_ViewStart中的错误

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>

猜你喜欢

转载自blog.csdn.net/ryancao530/article/details/112260182