【发布时间】:2012-12-11 22:35:10
【问题描述】:
我是一位经验丰富的 .NET 程序员,但对整个 Web 编程这件事我还是新手。我的 ASP.NET MVC 网站有一个全局布局,其中包含一些我想在控制器代码动态检测到的条件下隐藏的内容(页面顶部的菜单链接)。
我的倾向 - 使用我迄今为止所了解的工具的简单方法 - 将 Boolean HideGlobal 值推入 ViewBag,并将全局标记放在我想要隐藏的 _Layout.cshtml 中@if (ViewBag.HideGlobal){} 块。
我只是想知道这是否是“正确”的方法,还是我应该使用一些 Razor 魔法,原因我还不明白?
【问题讨论】:
-
根据您确定显示或隐藏项目的方式,您可能希望在操作过滤器(控制器外部)中设置 ViewData 项目。
-
如果您将 HideGlobal 放入视图包中,则需要在每个操作中都这样做。
-
@Omar 这不是真的
ActionFilter意味着你可以在全球范围内做到这一点 -
@Lavinski - 我指的是 Bob 的方法。
-
@Omar 对,在这种情况下是的
标签: asp.net-mvc razor