如何在Master Layout.cshtml中放置数据库中的动态菜单项?

时间:2013-07-15 14:21:57

标签: javascript

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

但是在创建MasterLayout时,它不像普通视图那样提供选择模型的选项..

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

1 个答案:

答案 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