Dans le projet asp.net par défaut mvc, dans le fichier Site.master, il y a une liste de navigation de menu:Ajout tag "active" à la liste de navigation dans une page maître mvc asp.net
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About Us", "About", "Home")%></li>
</ul>
</div>
Cette Renders dans le navigateur:
<div id="menucontainer">
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About Us</a></li>
</ul>
</div>
Je veux être en mesure de définir dynamiquement l'élément actif de la liste, en fonction de la vue qui est appelé. Autrement dit, lorsque l'utilisateur est à la recherche à la page d'accueil, je veux le code HTML suivant à créer:
<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>
je me attends à ce que la façon de le faire serait quelque chose comme:
<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>
Le bit clé ici est la ligne <% if(actionName == "Index"){%> class="active"<%}%>
. Je ne sais pas comment déterminer le nom d'action actuel.
Des suggestions sur comment faire cela? Ou, si je suis complètement sur la mauvaise piste, y at-il une meilleure façon de le faire?
Si vous obtenez une erreur sur le retour helper.ActionLink , Ajoutez ceci à vos références en utilisant: using System.Web.Mvc.Html; – Mike
il devrait retourner un MvcHtmlString et pas une chaîne – BjarkeCK