2

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

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

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

4

1 回答 1

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"); }

这里有一个很好的例子,一个可编辑的菜单。我建议你看一下关于模型结构的想法:ASP.NET MVC 4 中的动态菜单

于 2013-07-15T14:33:49.373 回答