我试图在 MasterLayout.cshtml 中实现动态菜单项
但是在创建 MasterLayout 时,它没有像在普通视图中那样提供选择模型的选项。
那么,如何在 MasterLayout 中添加动态菜单,使其可以显示在所有普通视图中???
我试图在 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.cshtml 的强类型视图。您应该传递一个枚举或其他东西来动态创建它。
3) 将上面的行放在 MasterLayout 上以动态呈现菜单:
@{ Html.RenderAction("MainMenu", "Home"); }
这里有一个很好的例子,一个可编辑的菜单。我建议你看一下关于模型结构的想法:ASP.NET MVC 4 中的动态菜单。