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

2024-05-02

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

示例代码 - Layout.cshtml...

... code ...
@if(user.IsAdmin) {
    @RenderSection("AdminSidebar", false)
}

示例代码 - MyPage.cshtml...

@section AdminSidebar {
    ... code ...
}

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

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


我不知道这是否是在滥用框架,但如果你真的倾向于这样做,你可以尝试以下操作:

@{
    if(user.IsAdmin) {
        @RenderSection("AdminSidebar", false)
    } 
    else {
        RenderSection("AdminSidebar", false).WriteTo(TextWriter.Null);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何选择性地呈现 ASP.Net MVC 3 中的某个部分? 的相关文章

随机推荐