解决方法
处理这个问题的最好方法是编写一个HTML帮助器。您可以使用RouteData.Values [“action”]获取当前执行的操作,并与菜单名称进行比较,如果它们匹配,则应用将突出显示的CSS类。
public static MvcHtmlString MenuItem( this HtmlHelper htmlHelper,string action,string text ) { var menu = new TagBuilder("div"); var currentAction = (string)htmlHelper.ViewContext.RouteData.Values["action"]; if (string.Equals( currentAction,action,StringComparison.CurrentCultureIgnoreCase) ) { menu.AddCssClass("highlight"); } menu.SetInnerText(text); return MvcHtmlString.Create(menu.ToString()); }
然后使用这个帮助器来渲染菜单项:
<%: Html.MenuItem("about","About us") %> <%: Html.MenuItem("contact","Contact us") %> ...