W domyślnym ASP.NET MVC projektu w pliku Site.Master znajduje się lista menu nawigacyjne:Dodanie „aktywny” znacznik do listy nawigacji w ASP.NET MVC głównej stronie
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About Us", "About", "Home")%></li>
</ul>
</div>
ten renderuje w przeglądarce, aby:
<div id="menucontainer">
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About Us</a></li>
</ul>
</div>
chcę, aby móc dynamicznie ustawić aktywny element listy, opiera się na poglądzie, że jest nazywany. Oznacza to, że gdy użytkownik patrzy na stronie głównej, chciałbym następujące HTML mają być utworzone:
<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>
Spodziewam się, że sposobem na to byłoby coś takiego:
<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>
Kluczowym bitem jest tutaj linia <% if(actionName == "Index"){%> class="active"<%}%>
. Nie wiem, jak określić, czym jest bieżące actionName.
Wszelkie sugestie, jak to zrobić? Lub, jeśli jestem na zupełnie niewłaściwym torze, czy jest lepszy sposób na zrobienie tego?
Jeśli otrzymujesz błąd po powrocie helper.ActionLink Dodaj to do twoich referencji: używając System.Web.Mvc.Html; – Mike
powinien zwrócić MvcHtmlString, a nie ciąg – BjarkeCK