如何将数据库中的动态菜单项放入MasterLayout.cshtml中

How to put dynamic Menu items from databse in MasterLayout.cshtml?

本文关键字:MasterLayout cshtml 菜单项 数据库 动态      更新时间:2023-09-26

我尝试在MasterLayout.cshtml 中实现动态菜单项

但在创建MasterLayout时,它并没有像普通视图中那样提供"选择模型"选项。。

那么,如何在MasterLayout中添加动态菜单,使其可以在所有普通视图中显示???

您应该创建一个强类型PartialView来在MasterLayout中生成菜单动态。例如:

1) 在HomeController上创建一个动作,作为ChildAction,以防止外部访问,这将仅用作菜单渲染:

[ChildActionOnly]
public ActionResult MainMenu()
{
    var menu = /*Populate the menu*/;
    return PartialView("_MainMenu", menu);
}

2) 在Views/Shared中为菜单创建一个名为_MainMenu.chtml的强类型视图。您应该传递一个枚举或其他东西来动态创建它。

3) 将上面的行放在MasterLayout上,以普通方式呈现菜单:

@{ Html.RenderAction("MainMenu", "Home"); }

这里有一个很好的例子,用于可编辑菜单。我建议您了解一下模型结构:ASP.NET MVC 4中的动态菜单。