好的新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);
- }
希望这有助于某人。