解决方法@H_403_4@
处理这个问题的最好方法是编写一个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") %>
...
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") %> ...