好的新MVC。我早些时候问了
this问题,得到了一个答案,但我想知道是否有一个更简单的解决方案。
说我有一个主页,其中列出了无序列表的菜单。如何在当前选择的菜单项上设置一个css类?
编辑:
当我启动一个新的mvc应用程序时,我正在使用菜单,就像它的设置一样
<ul id="menu"> <li><%: Html.ActionLink("Home","Index","Home")%></li> <li><%: Html.ActionLink("About","About","Home")%></li> </ul>
解决方法
Jakub Konecki的答案让我走向正确的方向…这里是我最终掌握的控制器动作:
[ChildActionOnly] public ActionResult MainMenu() { var items = new List<MenuItem> { new MenuItem{ Text = "Home",Action = "Index",Controller = "Home",Selected=false },new MenuItem{ Text = "My Profile",Controller = "Profile",Selected = false},new MenuItem{ Text = "About",Action = "About",Selected = false } }; string action = ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString(); string controller = ControllerContext.ParentActionViewContext.RouteData.Values["controller"].ToString(); foreach (var item in items) { if (item.Controller == controller && item.Action == action) { item.Selected = true; } } return PartialView(items); }
希望这有助于某人。