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