我是ASP.NET MVC的新手,我想知道如果我的_Layout.cshtml有一个元素应该怎么做?

<div class="navbar navbar-inverse navbar-fixed-top">
   ...
</div>


我不想使用控制器SomePageController.cs和视图SomePage.cshtml为特定页面生成的内容。我是否只将HTML包裹在if语句中,例如

@if(not on SomePage) {
    <div class="navbar navbar-inverse navbar-fixed-top">
       ...
    </div>
}


还是有更合适的方法?

最佳答案

我通常在ViewBag中使用魔术字符串。我将其设置在控制器中(如果需要,也可以在视图顶部进行设置)。

ViewBag.HideNavBar = true;


在_Layout中:

@if(ViewBag.HideNavBar == null) {
    <div class="navbar navbar-inverse navbar-fixed-top">
       ...
    </div>
}


我一直使用这种策略将选项(例如datepicker选项)一直传递到布局中。

关于c# - 如何从1个特定页面的布局中删除HTML元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30462358/

10-13 03:30