4
我在測試ASP.NET MVC應用程序中有一個局部視圖。該視圖負責顯示應用程序菜單按鈕。在ASP.NET MVC中確定部分視圖中當前視圖的名稱
我想更改當前活動頁面的按鈕顏色。目前,我已經寫了類似:
<ul id="menu">
<% var activeClass = (string)(ViewData["currentPage"]) == "Home" ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("Home", "Index", "Home", new { @class = activeClass })%></li>
<% activeClass = (string)(ViewData["currentPage"]) == "About" ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("About", "About", "Home", new { @class = activeClass })%></li>
</ul>
,並設置視圖數據控制器操作:
//in home action
ViewData["currentPage"] = "Home";
//in About action
ViewData["currentPage"] = "About";
這工作,但我不得不修改每一個控制器動作。有沒有更好的方法來自動檢測視圖,並以某種方式更改部分視圖代碼以相應地更改顏色。
這對我幫助很大。謝謝。作爲一個fyi,我使用這段邪惡來得到這個信息:String currentView =((WebFormView)ViewContext.View).ViewPath;我的問題是,由於未知原因,它在一個ViewControl中工作,但不是另一個,並且都在同一頁面上加載。這可能是我的一個ID10T錯誤,但問題的原因並不明顯。再次感謝。 – jason 2010-11-01 17:29:22