我正在尝试突出显示 MVC 4 中的当前链接,但我不能这样做,我正在分享我到目前为止所做的事情
菜单助手扩展:
public static class MenuHelper
{
public static MvcHtmlString ListItemAction(this HtmlHelper helper, string name, string actionName, string controllerName)
{
var currentControllerName = (string)helper.ViewContext.RouteData.Values["controller"];
var currentActionName = (string)helper.ViewContext.RouteData.Values["action"];
var sb = new StringBuilder();
sb.AppendFormat("<li{0}", (currentControllerName.Equals(controllerName, StringComparison.CurrentCultureIgnoreCase) &&
currentActionName.Equals(actionName, StringComparison.CurrentCultureIgnoreCase)
? " class=\"active\">" : ">"));
var url = new UrlHelper(HttpContext.Current.Request.RequestContext);
sb.AppendFormat("<a href=\"{0}\">{1}</a>", url.Action(actionName, controllerName), name);
sb.Append("</li>");
return new MvcHtmlString(sb.ToString());
}
}
这是我的 HTML
<li class="has-sub active">
<a href="javascript:;" class="">
<i class="icon-magnet"></i>Manage
<span class="arrow open"></span>
<span class="selected"></span>
</a>
<ul class="sub">
@{
@Html.ListItemAction("Parts", "Index", "Part")
@Html.ListItemAction("Categories", "Index", "Category")
@Html.ListItemAction("Tickets", "Index", "Ticket")
@Html.ListItemAction("SearchLog", "Index", "SearchLog")
@Html.ListItemAction("Reviews", "Index", "Review")
}
</ul>
</li>
这只是突出显示链接,但由于我的设计,我也想更改 LI 标记类。我还有其他链接,我希望当单击链接时,父 LI 标记将分配给活动类。我该怎么做?我已经搜索了互联网,但找不到任何方法来解决这个问题。