我尝试在MasterLayout.cshtml中实现动态菜单项
但是在创建MasterLayout时,它不像普通视图那样提供选择模型的选项..
那么,如何在MasterLayout中添加动态菜单,以便它可以在所有普通视图中显示???
答案 0 :(得分:0)
你应该创建一个强类型的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"); }
这里有一个很好的例子,一个可编辑的菜单。我建议你去了解模型结构:Dynamic Menus in ASP.NET MVC 4。