2010-08-29 66 views
0

我遇到的PartialView如下implenting一個動態的基於動作的菜單系統的問題:動態基於操作的URL菜單問題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> 

的問題是,只有「索引」菜單項作品,其中CSS類以HTML標記呈現。其他人不,真的很奇怪。有任何想法嗎??

回答

1

除了使用低位指定的索引以外的所有操作方法。使用大小寫不敏感的比較來代替「==」

+0

謝謝。使用你的智慧修復它下面的答案 – shahidaltaf 2010-08-29 22:39:54

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

看起來不錯。對於需要在子頁面上突出顯示按鈕的更高級場景,您可能需要創建可以像這樣使用的Html或Url助手<%= Url.Highlight(「/ account/*」,「active」)%> – 2010-08-29 23:17:04