如何从数据库动态创建菜单并应用于asp.net mvc中的所有页面

时间:2014-09-08 07:15:00

标签: asp.net-mvc asp.net-mvc-3

我是asp.net mvc的新手。我正在尝试在mvc 3中创建网站。我想从数据库创建动态菜单,该菜单应该在我的网站上可见。我在谷歌搜索它,并在下面找到了从数据库创建动态菜单的代码。但是,当我试图在另一个页面上应用时,它给了我一个错误,即(“值不能为null。参数名称:源。”) 这是菜单控制器的代码。

public class MenuController : Controller
{
    MenuEntities MEnt = new MenuEntities();

    //[ChildActionOnly]
    public ActionResult Menus()
    {
        var mMenu = MEnt.Menu.ToList();
        return View(mMenu);
    }

}

这是模型菜单的代码:

[Table("tbl_MVC_Menucontrol")]
public class Menus
{
    [Key]
    public int MenuId { get; set; }
    public string MenuName { get; set; }
    public int? MenuParent { get; set; }
    public int MenuOrder { get; set; }        
    public string LinkName { get; set; }
    public string ActionName { get; set; }
    public string ControllerName { get; set; }
    public Int64 MenuActive { get; set; }
}

这是我查看“菜单”的代码

@model IEnumerable<MultilevelMenu.Models.Menus>
<div>
    @Html.Raw(@Html.ParentMenus(Model))
</div>

上面给出了表tbl_MVC_Menucontrol中的动态菜单。但我不知道如何在所有其他页面中应用这些菜单。 你能帮帮我.....

1 个答案:

答案 0 :(得分:2)

只需在布局上使用html帮助器@Html.RenderAction

  @{ Html.RenderAction("Menus","Menu"); }

因为我们会为每个视图加载布局,因此您的菜单将针对每个视图进行渲染。