这是我的菜单
<nav class="moduletable navigation hidden-sm hidden-xs">
<ul id="nav" class="sf-menu">
<li class="@Html.IsActive("GameVideos", "Index")"><a href="@Url.Action("Index", "GameVideos")">videogame</a></li>
<li class="@Html.IsActive("SystemRequirements", "Index")"><a href="@Url.Action("Index", "SystemRequirements")">systemReq</a></li>
<li class="@Html.IsActive("Games", "UpcommingGames")"><a href="@Url.Action("UpcommingGames", "Games")">upcomming game</a></li>
</ul>
</nav>
并且此方法检查菜单处于事件状态
public static string IsActive(this IHtmlHelper htmlHelper, string controller, string action)
{
var routeData = htmlHelper.ViewContext.RouteData;
var routeAction = routeData.Values["action"].ToString();
var routeController = routeData.Values["controller"].ToString();
var returnActive = (controller == routeController && action == routeAction);
return returnActive ? "active" : "";
}
当我选择菜单时它可以工作但是当我点击一个游戏并看到详细信息事件类被删除时,此代码仅适用于索引 View 但不适用于详细信息菜单
最佳答案
你必须像这样改变 isactive 方法:
public static string IsActive(this IHtmlHelper htmlHelper, string controller, string action)
{
var routeData = htmlHelper.ViewContext.RouteData;
var routeAction = routeData.Values["action"].ToString();
var routeController = routeData.Values["controller"].ToString();
var returnActive = (controller == routeController && (action == routeAction || routeAction == "Details"));
return returnActive ? "active" : "";
}
关于jquery - 将事件类添加到 asp.net core 中的菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57029363/