Dans une application mvc asp.net, je résous généralement cela en définissant un identifiant de l'étiquette de corps qui contient à la fois le nom du contrôleur et le nom de l'action. Ensuite, j'utilise css pour styliser les liens différemment en fonction de l'identifiant de la balise body.
Je le fais généralement en créant une extension d'assistance html qui obtient la chaîne d'identification pour l'étiquette de corps. Cela peut ressembler à ceci:
public static string BodyId(this HtmlHelper helper) {
var controllerName = helper.ViewContext.RouteData.GetRequiredString("controller").ToLower();
var actionName = helper.ViewContext.RouteData.GetRequiredString("action").ToLower();
return string.Format("{0}-{1}", controllerName, actionName);
}
utiliser ensuite comme ceci:
<body id="<%=Html.BodyId()%>">
Ensuite, vous pouvez mettre ids de tous vos liens aussi bien. Pour le rendre plus clair, ils peuvent également contenir le nom du contrôleur et le nom de l'action à laquelle ils doivent être liés. Quelque chose comme ceci:
<ul>
<li><a href="" id="home-index-link">test1</a></li>
<li><a href="" id="account-login-link">test2</a></li>
</ul>
Ensuite, j'utilise css pour les styler différemment selon qu'ils sont sélectionnés ou non. Quelque chose comme ceci:
#home-index #home-index-link, #account-login #account-login-link {
/* Styles for selected links */
}
Il sera, bien sûr, travailler si vous faites la même chose pour la balise <li />
au lieu de la balise <a />
.
Si vous ne voulez pas faire comme ça, vous pouvez bien sûr utiliser la routedata (comme je le fais dans mon assistant html ici). La valeur avec la clé "action" contiendra le nom de l'action et la valeur avec la clé "controller" contiendra le nom du contrôleur.
J'utilise asp.net mvc – kusanagi