相关疑难解决方法(0)

ASP.Net MVC 3剃刀:部分定义但未呈现错误

我有以下布局模板:

<div id="columns" class="@View.LayoutClass">
    <div id="mainColWrap">
        <div id="mainCol">
            @RenderBody()
        </div>
    </div>
    @if (View.ShowLeftCol){
    <div id="leftCol">
        @RenderSection("LeftCol", required: false)
    </div>
    }
    @if (View.ShowRightCol){
    <div id="rightCol">
        @RenderSection("RightCol", required: false)
    </div>
    }
</div>
Run Code Online (Sandbox Code Playgroud)

如果View.ShowLeftCol或View.ShowRightCol设置为false,则会出现以下错误:


已定义以下部分,但尚未针对布局页面"〜/ Views/Shared/_Layout.cshtml":"RightCol"进行渲染.


我正在尝试使用单个布局模板,而不是尝试在运行时动态选择模板.有没有办法忽略这个错误并继续渲染?任何人都可以想到另一种实现方式,这将允许我用Razor动态显示/隐藏列?

谢谢!

razor asp.net-mvc-3

25
推荐指数
1
解决办法
2万
查看次数

如何在ASP.Net MVC 3中选择性地呈现一个部分?

在我的网站上,我有一个部分(浮动侧边栏),我只想为一组用户(管理员)呈现.我希望我可以将逻辑放在主布局中,以确定是否应显示该部分,但如果未呈现该部分,则会在页面上导致错误.

示例代码 - Layout.cshtml ...

... code ...
@if(user.IsAdmin) {
    @RenderSection("AdminSidebar", false)
}
Run Code Online (Sandbox Code Playgroud)

示例代码 - MyPage.cshtml ...

@section AdminSidebar {
    ... code ...
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何让它工作而不必将逻辑放在所有子页面中?

作为注释,IsSectionDefined("AdminSidebar")仅适用于布局文件.它在页面中不起作用来测试该部分是否可用.

asp.net-mvc razor asp.net-mvc-3

12
推荐指数
1
解决办法
2668
查看次数

标签 统计

asp.net-mvc-3 ×2

razor ×2

asp.net-mvc ×1