C# 从Asp.net MVC5中的数据库中的数据库动态加载布局页面中的菜单?

C# 从Asp.net MVC5中的数据库中的数据库动态加载布局页面中的菜单?,c#,asp.net-mvc,C#,Asp.net Mvc,我想在MVC的布局页面中动态加载菜单 我已经为菜单和菜单项创建了视图代码、模型。现在我想要的是动态加载菜单。它必须从数据库中检索数据并加载到布局页面中 我的型号 public Menu() { MenuItems = new List<MenuItem>(); } public int Id { get; set; } public string Name { get; set; } public List<MenuItem> MenuItems { get;

我想在MVC的布局页面中动态加载菜单

我已经为菜单和菜单项创建了视图代码、模型。现在我想要的是动态加载菜单。它必须从数据库中检索数据并加载到布局页面中

我的型号

public Menu()
{
    MenuItems = new List<MenuItem>();
}

public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
菜单模式

public Menu()
{
    MenuItems = new List<MenuItem>();
}

public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
我的控制器代码

  public ActionResult Index()
    {
        var menu = new Menu();
        menu.Name = "Main Menu";
        var query = db.ApplicationNames.Select(e => new { 
          UID=  e.UID,
             e.ApplicationName1
        }).FirstOrDefault();
        var uid = query.UID.ToString();
        var name = query.ApplicationName1;

   var items = new List<MenuItem>() { new MenuItem { Name = "FirstMenu", ControllerName = uid, ActionName = name }};
        menu.MenuItems = items;
        return PartialView("_MenuLayout",menu);
    }
         <nav id="mainNavigation">
           @Html.Partial("_MenuLayout")
         </nav>
public ActionResult Index()
{
变量菜单=新菜单();
menu.Name=“主菜单”;
var query=db.ApplicationNames.Select(e=>new{
UID=e.UID,
e、 应用程序名称1
}).FirstOrDefault();
var uid=query.uid.ToString();
var name=query.ApplicationName1;
var items=new List(){new MenuItem{Name=“FirstMenu”,ControllerName=uid,ActionName=Name};
menu.MenuItems=项目;
返回部分视图(“菜单”,菜单);
}
我的部分观点_MenuLayout

 @model List<DynamicMenuLoading.Models.Menu>
        <ul>
             <li>
                <a href="#">
                   <span>@Model.Name</span>
                  </a>
                <ul>
                    @foreach (var item in Model.MenuItems)
                    {
                        <li><a href="@Url.Action(@item.ActionName , @item.ControllerName )"><i class="fa fa-circle-o"></i>@item.Name</a></li>
                    }
                </ul>
            </li>
        </ul>
@型号列表
    • @foreach(Model.MenuItems中的var项) {
    • }
我的布局页面

  public ActionResult Index()
    {
        var menu = new Menu();
        menu.Name = "Main Menu";
        var query = db.ApplicationNames.Select(e => new { 
          UID=  e.UID,
             e.ApplicationName1
        }).FirstOrDefault();
        var uid = query.UID.ToString();
        var name = query.ApplicationName1;

   var items = new List<MenuItem>() { new MenuItem { Name = "FirstMenu", ControllerName = uid, ActionName = name }};
        menu.MenuItems = items;
        return PartialView("_MenuLayout",menu);
    }
         <nav id="mainNavigation">
           @Html.Partial("_MenuLayout")
         </nav>

@Html.Partial(“\u MenuLayout”)
我的表名应用程序名

  public ActionResult Index()
    {
        var menu = new Menu();
        menu.Name = "Main Menu";
        var query = db.ApplicationNames.Select(e => new { 
          UID=  e.UID,
             e.ApplicationName1
        }).FirstOrDefault();
        var uid = query.UID.ToString();
        var name = query.ApplicationName1;

   var items = new List<MenuItem>() { new MenuItem { Name = "FirstMenu", ControllerName = uid, ActionName = name }};
        menu.MenuItems = items;
        return PartialView("_MenuLayout",menu);
    }
         <nav id="mainNavigation">
           @Html.Partial("_MenuLayout")
         </nav>
UID应用程序名

1名员工

2客户

3城市

4州

5个国家

当我尝试运行我的项目时,出现以下错误:

e:\任务 已尝试\DynamicMenuLoading\DynamicMenuLoading\Views\Shared\u MenuLayout.cshtml(8): 错误CS1502:的最佳重载方法匹配 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 有一些无效的参数

谁能告诉我我犯了什么错误?有人能理解我的问题并为我的问题提供解决方案吗?

概念问题: 您需要创建一个单独的控制器操作来检索菜单数据并显示菜单视图

public ActionResult MenuLayout()
{
    var menu = new Menu();

    // TODO: Fill menu with data here

    return PartialView("_MenuLayout", menu);
}
从布局页面调用该操作:

<nav id="mainNavigation">
    @Html.Action("MenuLayout", "Home")
</nav>

我做了所有这些单独的控制器你能详细解释你的答案吗