Hem*_*ant 4 css c# asp.net-mvc partial-views
我在测试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>
Run Code Online (Sandbox Code Playgroud)
并在控制器操作中设置视图数据:
//in home action
ViewData["currentPage"] = "Home";
//in About action
ViewData["currentPage"] = "About";
Run Code Online (Sandbox Code Playgroud)
这有效但我必须修改每个控制器动作.有没有更好的方法来自动检测视图,并以某种方式更改部分视图代码以相应地更改颜色.
我认为你不需要ViewData ["currentPage"].ViewContext.RouteData.Values改为使用:
试试这个:
<ul id="menu">
<% var activeClass = (ViewContext.RouteData.Values["Controller"] == "Home"
&& ViewContext.RouteData.Values["Action"] == "Home") ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("Home", "Index", "Home", new { @class = activeClass })%></li>
<% activeClass = (ViewContext.RouteData.Values["Controller"] == "Home"
&& ViewContext.RouteData.Values["Action"] == "About") ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("About", "About", "Home", new { @class = activeClass })%></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |