ASP.Net MVC3 Razor中的动态菜单加载
我想问一下ASP.Net中的动态数据库驱动菜单加载
MVC3razor。
这是我的
1.查看代码
2.菜单模型
3.菜单项的模型
4.导航模型结构
在这个项目中,我有不同的用户登录。对于每次登录,他们都是
由模块限制。所以当用户使用他们进入应用程序时
登录时,他们只能访问自己的帐户。
例如,有两个用户A和B.用户A只能访问帐户和报告,用户B只能访问报告。
要实现这些function,请从数据库加载菜单。
我的问题是如何在ASP.Net MVC3 Razor中实现从数据库加载菜单
查看代码
@{ ViewBag.Title = "Elixir ERP V1.0 Beta"; Layout = "~/Views/Shared/_LayoutUser.cshtml"; }
菜单模型
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Elixir.Models { public class Menu { public Menu() { MenuItems = new List(); } public int Id { get; set; } public string Name { get; set; } public List MenuItems { get; set; } } }
菜单项
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Elixir.Models { public class MenuItem { public int Id { get; set; } public int UserName { get; set; } public string Name { get; set; } public string ActionName { get; set; } public string ControllerName { get; set; } public string Url { get; set; } public Menu ParentMenu { get; set; } } }
导航模型结构
在_Shared.cshtml中放在div下面
为动态生成的菜单创建新的_MenuLayout.cshtml
视图
在您的控制器中,编写代码以从数据库表中获取数据,例如MenuTable并准备列表并分配如下所示的值
ViewBag.Menu = list;
并在代码下面的_MenuLayout.cshtml
局部视图中,
@{ var menusList = ViewBag.Menu as IEnumerable; } @if (menusList != null) { }