Вы можете проверить текущее действие и, если оно соответствует, применить класс CSS:
<% if (ViewContext.RouteData.GetRequiredString("action") == "About") { %>
... highlight here
<% } %>
Еще лучше, я бы написал помощник HTML для создания меню:
public static MvcHtmlString MenuItem(
this HtmlHelper htmlHelper,
string text,
string action,
string controller
)
{
var li = new TagBuilder("li");
var routeData = htmlHelper.ViewContext.RouteData;
var currentAction = routeData.GetRequiredString("action");
var currentController = routeData.GetRequiredString("controller");
if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
{
li.AddCssClass("active");
}
li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
return MvcHtmlString.Create(li.ToString());
}
, а затем используйте его так:
<ul>
<%= Html.MenuItem("Home", "Home", "Home") %>
<%= Html.MenuItem("About Me", "About", "Home") %>
<%= Html.MenuItem("My Work", "Work", "Home") %>
<%= Html.MenuItem("Blog", "Index", "Blog") %>
...
</ul>
Это добавит класс active
к привязке, если текущий запрос соответствует действию и контроллеру ссылки.