【发布时间】:2015-02-26 21:26:09
【问题描述】:
我正在将 MVC aspx 内容占位符 -> 母版页转换为 MVC razor 部分 -> 布局。
过去当我的 aspx 视图变成这样的时候:
<asp:Content ID="HelpContent" ContentPlaceHolderID="HelpLink" runat="server">
<a href="../../Support" target="HPhelp" title="Open GideonSoft Help">Help</a>
</asp:Content>
并且母版页没有相应的 HelpContent 占位符(可能是因为用户未通过身份验证)一切都呈现正常(没有 HelpContent 部分)。
现在,当我定义了一个在布局中没有相应 @RenderSection 的剃须刀部分时,我收到此错误:
以下部分已定义但尚未呈现 对于布局页面“~/Views/Shared/New.cshtml”:“HelpLink”。
我需要重新设计吗?
如果布局给了它绿灯,我有没有办法让视图的 HelpLink 部分呈现可选?
编辑:
我觉得有些混乱,所以让我重新总结一下:
布局逻辑如下:
if (User.IsLoggedIn) {
@RenderSection( "HelpLinks", false);
}
但是随后用户没有登录,它没有呈现,然后 .NET 抛出异常,因为布局不知道如何处理该部分。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-4 razor razorengine