2010-08-29 7 views
0

je vais avoir des problèmes implenting un système de menu basé sur l'action dynamique dans un PartialView comme ci-dessous:menu URL-action dynamique problème C# mvc

<ul class="tabs"> 
    <li <% if (ViewContext.RouteData.Values["Action"] == "Index"){ %>class="active"<% } %>><a href="/talent">Home</a></li> 
    <li <% if (ViewContext.RouteData.Values["Action"] == "account"){ %>class="active"<% } %>><a href="/talent/account">Account settings</a></li> 
    <li <% if (ViewContext.RouteData.Values["Action"] == "password"){ %>class="active"<% } %>><a href="/talent/password">Password settings</a></li> 
    <li <% if (ViewContext.RouteData.Values["Action"] == "profile"){ %>class="active"<% } %>><a href="/talent/profile">Edit profile</a></li> 
    <li <% if (ViewContext.RouteData.Values["Action"] == "messages"){ %>class="active"<% } %>><a href="/talent/messages">Messages</a></li> 
    <li id="logout"><a href="/logout">Logout</a></li> 
</ul> 

Le problème est que seul l'élément de menu 'Index' œuvres , où la classe CSS est rendue dans le balisage HTML. Les autres ne le font pas, vraiment étrange. Des idées??

Répondre

1

Toutes les méthodes d'action autres que l'index spécifié avec lowcase. Comparaison insensible à la casse au lieu de "=="

+0

merci. Fixé en utilisant votre sagesse la réponse ci-dessous – shahidaltaf

1
<% string action = ViewContext.RouteData.Values["Action"].ToString().ToLower(); %> 

<ul class="tabs"> 
    <li <% if (action == "index"){ %>class="active"<% } %>><a href="/talent">Home</a></li> 
    <li <% if (action == "account"){ %>class="active"<% } %>><a href="/talent/account">Account settings</a></li> 
    <li <% if (action == "password"){ %>class="active"<% } %>><a href="/talent/password">Password settings</a></li> 
    <li <% if (action == "profile"){ %>class="active"<% } %>><a href="/talent/profile">Edit profile</a></li> 
    <li <% if (action == "messages"){ %>class="active"<% } %>><a href="/talent/messages">Messages</a></li> 
    <li id="logout"><a href="/logout">Logout</a></li> 
</ul> 
+0

On dirait bien. Pour un scénario plus avancé où vous avez également besoin d'un bouton en surbrillance sur les sous-pages, vous pouvez créer un helper Html ou Url qui pourrait être utilisé comme ceci <% = Url.Highlight ("/ account/*", "active")%> –