asp.net - ASP.NET MVC菜单选定项

标签 asp.net asp.net-mvc

确定新的MVC。我之前曾问过this问题并得到了答案,但我想知道是否有更简单的解决方案。

假设我有一个母版页,其中的菜单布局为无序列表。如何在当前选择的菜单项上设置CSS类?

编辑:

我正在使用菜单,就像启动新的MVC应用程序时开箱即用一样

<ul id="menu">              
   <li><%: Html.ActionLink("Home", "Index", "Home")%></li>
   <li><%: Html.ActionLink("About", "About", "Home")%></li>
</ul>

最佳答案

Jakub Konecki的答案将我引向了正确的方向……这是我最终的 Controller Action :

    [ChildActionOnly]
    public ActionResult MainMenu()
    {
        var items = new List<MenuItem>
        {
            new MenuItem{ Text = "Home", Action = "Index", Controller = "Home", Selected=false },
            new MenuItem{ Text = "My Profile", Action = "Index", Controller = "Profile", Selected = false},
            new MenuItem{ Text = "About", Action = "About", Controller = "Home", 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);
    }

希望这对某人有帮助。

关于asp.net - ASP.NET MVC菜单选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653226/

相关文章:

javascript - 如何设置刷新后选中的复选框项目?

asp.net - 将表行注入(inject)重复器项内

c# - 在 switch 语句外使用变量 + asp.net mvc

c# - 如何在 ASP.NET MVC 应用程序中实现密码检查延迟?

c# - 从列表中删除重复项,但保留其计数

c# - 为什么 foreach on PlaceHolder.Controls 抛出 "Collection was modified"?

c# - 如何在asp.net core中添加多个身份和多个角色

c# - mvc调用api Controller PostAsJsonAsync操作方法名称获取

asp.net-mvc - 从 API 重定向

c# - 是否有等同于@HTML.dropdownlist 的复选框