基本上,我所做的是创建一个@helper 来构建我的菜单项,您只需将当前以某种方式处于活动状态的菜单项传递给您的模型,并且在构建该项目时,将href 设置为#。这也可以使用 javascript/jquery 来完成。
这是我的@helper 方法:
@helper MenuItemDesigner(string MenuItemName, bool hasAccess, string view, string controller, string areaName, MenuItems.Name menuItem, string glyphicon, string badge)
{
if (hasAccess)
{
<a
@if (Model.ActiveMenuItem == menuItem)
{
<text>id = "@menuItem" href="#"</text>
@Html.Raw("class= 'list-group-item active'");
}
else
{
<text>id = "@menuItem" href="@Url.Action(view, controller, new { Area = areaName })"</text>
@Html.Raw("class= 'list-group-item'");
}
><span class="@glyphicon"></span> @MenuItemName <span class="badge" data-val="0" style="display:none">@badge</span>
</a>
}
}
显然,并非所有这些都适用于每个场景,但这可以作为参考。重要的部分是只知道当前活动的菜单项并设置它的 href="#" 但是你需要这样做。