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<Me

我想在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 query = db.ApplicationNames.ToList();
        ViewBag.Menu = query;
        return View();
    }
现在我已经创建了模型和控制器代码。现在我需要进一步的指导,即如何在布局页面中显示这些应用程序名称。如果我点击菜单,它必须重定向到相应的页面。 他们中的许多人说在部分视图中加载菜单,并称之为布局页面中的部分视图。但是如何在部分视图中加载菜单并将其更改为ActionLink。我需要一些指导和解决此问题的方法。任何人都理解我的问题并为我的问题提供解决方案


谢谢..

您可以将菜单列表发送到局部视图(假设我有数据)

var menu = new Menu();
menu.Name = "Main Menu";

var  items= new List<MenuItem>(){new MenuItem {Name="FirstMenu",ControllerName = "Home",ActionName="Index"}};

Menu.MenuItems = items;

   return View(menu);
var菜单=新菜单();
menu.Name=“主菜单”;
var items=new List(){new MenuItem{Name=“FirstMenu”,ControllerName=“Home”,ActionName=“Index”};
Menu.MenuItems=项目;
返回视图(菜单);
现在在我看来,我将根据给定的数据添加菜单

@model List<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项) {
    • }

usman我遇到错误,您使用了manuall控制器名称和操作名称您能告诉我如何在控制器中使用数据库值并传递到视图吗?仅举个例子,您从数据库菜单获取数据。项目将填充控制器名称和操作名称我的控制器代码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(){new MenuItem{Name=“FirstMenu”,ControllerName=uid,ActionName=Name}};menu.MenuItems=items;return PartialView(“MenuLayout”,menu);}}这是我的控制器代码。你能告诉我这是正确的还是错误的吗?因为我无法上传图像,所以我无法保存图像