Menú dynamic cargando en ASP.Net MVC3 Razor

Quiero preguntar acerca de la carga del menú de Dynamic Database Driven en ASP.Net

Afeitadora MVC3.

Este es mi

1.Ver Código

2.Modelo para Menu

3.Modelo para elementos de menú

Estructura del modelo de navegación.

En este proyecto tengo diferentes inicios de sesión de usuario. Para cada inicio de sesión son

limitado por los módulos. Entonces, cuando un usuario ingresa a la aplicación con sus

iniciar sesión, solo tienen un acceso limitado a su cuenta.

Por ejemplo, hay dos usuarios A y B. El usuario A puede acceder solo a Cuentas e Informes y el Usuario B solo puede acceder a Informes.

Para implementar estas cosas estoy cargando el menú de la base de datos.

Mi pregunta es cómo implementar el menú Cargar desde la base de datos en ASP.Net MVC3 Razor

Ver código

@{ ViewBag.Title = "Elixir ERP V1.0 Beta"; Layout = "~/Views/Shared/_LayoutUser.cshtml"; } 
@section leftnav{ }

Modelo de menú

 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; } } } 

Elementos de menú

 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; } } } 

Estructura del modelo de navegación

   

Coloca debajo de div en _Shared.cshtml

   

Cree una nueva vista _MenuLayout.cshtml para el menú dynamic generado

En su controlador, escriba el código para obtener datos de la tabla de la base de datos, por ejemplo, MenuTable y prepare la lista y asigne valores como a continuación

  ViewBag.Menu = list; 

y en su _MenuLayout.cshtml lugar de vista parcial debajo del código,

 @{ var menusList = ViewBag.Menu as IEnumerable; } @if (menusList != null) {  }