Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在asp.net mvc中从数据库动态创建菜单并应用于所有页面_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

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

Asp.net mvc 如何在asp.net mvc中从数据库动态创建菜单并应用于所有页面,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我是asp.NETMVC的新手。我正在尝试用MVC3创建网站。我想从数据库中创建动态菜单,该菜单应该在我的整个网站中可见。我在谷歌上搜索了一下,找到了下面从数据库创建动态菜单的代码。但当我尝试在其他页面上应用时,它会给我一个错误,即(“值不能为null。参数名称:source。”) 这是我的菜单控制器代码 public class MenuController : Controller { MenuEntities MEnt = new MenuEntities(); //[C

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

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
@Html.Raw(@Html.ParentMenus(Model))
上面给出了tbl_MVC_Menucontrol表中的动态菜单。但我不知道如何将这些菜单应用于所有其他页面。
你能帮帮我吗

只需在布局上使用html助手
@html.RenderAction
,如下所示:

  @{ Html.RenderAction("Menus","Menu"); }
因为我们将为每个视图加载布局,因此您的菜单将为每个视图呈现

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