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"; } 
@section leftnav{ }

菜单模型

 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) {  }