我在测试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";
这是可行的,但我必须修改每个控制器操作。是否有更好的方法自动检测视图,并以某种方式更改局部视图代码以相应地更改颜色。