gpt4 book ai didi

c# - 不在 MVC 3 的某些页面上显示菜单?

转载 作者:行者123 更新时间:2023-11-30 22:21:43 24 4
gpt4 key购买 nike

我正在开发一个 MVC 3 网站。我在网站上有一个 jquery 菜单。并非所有页面都使用菜单。因此,登录页面或未授权页面的注销页面没有菜单。我通过在我的 _Layout 页面中使用如下所示的 RenderSection 来完成此操作。

 @RenderSection("Menu", required: false)

然后在应该有菜单的页面中,我已经包含了如下部分:

@section Menu{
<ul id="menu" style="width: 150px; height: 150px; margin-right: 10px; z-index: 9999;">
<li>@Html.ActionLink("Dashboard", "Dashboard", "Home", null, new { @class = "menu-text" })</li>
<li>@Html.ActionLink("History", "ViewHistory", "History", null, new { @class = "menu-text" })</li>
<li><a class="menu-text" href="#">Reports</a>
<ul style="z-index: 9999;">
<li>@Html.ActionLink("File Report", "ViewFileReport", "Reports", null, new { @class = "menu-text" })</li>
<li><a class="menu-text" href="#">New Files</a></li>
<li><a class="menu-text" href="#">Old Files</a></li>
</ul>
</li>
<li><a class="menu-text" href="#">Admin</a>
<ul style="z-index: 9999;">
<li>@Html.ActionLink("Change Password", "ChangePassword", "Home", null, new { @class = "menu-text" })</li>
</ul>
</li>
<li>@Html.ActionLink("Log Off", "LogOff", "Home", null, new { @class = "menu-text" })</li>
</ul>
}

当我现在添加到菜单并更改我的内容并添加更多页面时,我意识到在我需要的所有页面上都有这个 RenderSection,但在我的登录页面或首次登陆页面上没有这个 RenderSection 很麻烦,因为我必须编辑它目前在 8/9 个地方,而且只会增长。实现我想要的目标的更好方法是什么?

最佳答案

是的,您想将菜单标记放在 _Layout.cshtml 中,但仅在需要时呈现它。

您可以在 ViewBag 中放置一个 bool 值,以在需要它的页面中打开菜单。

在您的 Controller 操作中,放置:

ViewBag.ShowMenu = true;

然后在 _Layout.cshtml 中,您可以放置​​如下条件:

@if ( ViewBag.ShowMenu == true )
{
<ul id="menu" ... your menu markup here
</ul>
}

关于c# - 不在 MVC 3 的某些页面上显示菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com