RenderSection 无法正常工作(Razor、MVC、ASP)
RenderSection is not working correctly (Razor, MVC, ASP)
我已经将 Header 定义为 _Layout
@if (User.Identity.IsAuthenticated == true)
{
@RenderSection("_Header")
@Html.Partial("_Header")
}
else
{
<header>Home</header>
}
内页,我使用布局定义的部分如下:
@{
Layout = "_Layout";
}
@section _Header{ }
<div>
<!-- some code -->
</div>
@section _Footer{ }
并且代码崩溃了:
InvalidOperationException: The following sections have been
defined but have not been rendered by the page at '/Views/Shared/_Layout.cshtml':'_Header'
To ignore an unrendered section call IgnoreSection("sectionName").
当我改成:
User.Identity.IsAuthenticated == false
一切正常。
为什么我遇到这个问题?
刚刚找到答案:
<body>
@if (User.Identity.IsAuthenticated == false)
{
@Html.Partial("_Header")
}
else
{
<header>Home</header>
}
@RenderBody()
@RenderSection("_Header", required: false)
</body>
我已经将 Header 定义为 _Layout
@if (User.Identity.IsAuthenticated == true)
{
@RenderSection("_Header")
@Html.Partial("_Header")
}
else
{
<header>Home</header>
}
内页,我使用布局定义的部分如下:
@{
Layout = "_Layout";
}
@section _Header{ }
<div>
<!-- some code -->
</div>
@section _Footer{ }
并且代码崩溃了:
InvalidOperationException: The following sections have been
defined but have not been rendered by the page at '/Views/Shared/_Layout.cshtml':'_Header'
To ignore an unrendered section call IgnoreSection("sectionName").
当我改成:
User.Identity.IsAuthenticated == false
一切正常。
为什么我遇到这个问题?
刚刚找到答案:
<body>
@if (User.Identity.IsAuthenticated == false)
{
@Html.Partial("_Header")
}
else
{
<header>Home</header>
}
@RenderBody()
@RenderSection("_Header", required: false)
</body>