В проекте asp.net mvc по умолчанию в файле Site.Master есть список навигации по меню:
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About Us", "About", "Home")%></li>
</ul>
</div>
В браузере отображается:
<div id="menucontainer">
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About Us</a></li>
</ul>
</div>
Я хочу иметь возможность динамически устанавливать активный элемент списка на основе вызываемого представления. То есть, когда пользователь смотрит на домашнюю страницу, мне нужен следующий HTML-код:
<div id="menucontainer">
<ul id="menu">
<li class="active"><a href="/">Home</a></li>
<li><a href="/Home/About">About Us</a></li>
</ul>
</div>
Я бы ожидал, что способ сделать это будет примерно таким:
<div id="menucontainer">
<ul id="menu">
<li <% if(actionName == "Index"){%> class="active"<%}%>><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li <% if(actionName == "About"){%> class="active"<%}%>><%= Html.ActionLink("About Us", "About", "Home")%></li>
</ul>
</div>
Ключевым битом здесь является строка <% if(actionName == "Index"){%> class="active"<%}%>
. Я не знаю, как определить, что такое текущее имя action.
Любые предложения о том, как это сделать? Или, если я полностью ошибаюсь, есть ли лучший способ сделать это?