C# 从Asp.net MVC5中的数据库中的数据库动态加载布局页面中的菜单?
我想在MVC的布局页面中动态加载菜单 我已经为菜单和菜单项创建了视图代码、模型。现在我想要的是动态加载菜单。它必须从数据库中检索数据并加载到布局页面中 我的型号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;
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>
我做了所有这些单独的控制器你能详细解释你的答案吗