Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NavigationMenu
- {
- [Key]
- [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public int Id { get; set; }
- public string Text { get; set; }
- public string Action { get; set; }
- public string Controller { get; set; }
- public string Icon { get; set; }
- public bool Selected { get; set; }
- public List<NavigationMenu> MenuChildren;
- }
- public class NavigationMenuContext : DbContext
- {
- public NavigationMenuContext() : base("name=DefaultConnection")
- {
- }
- public DbSet<NavigationMenu> NavigationMenus { get; set; }
- protected override void OnModelCreating(DbModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
- }
- }
- public class NavigationController : Controller
- {
- // GET: NewMenu
- public ActionResult Index()
- {
- NavigationMenuContext navigationMenuContext = new NavigationMenuContext();
- List<NavigationMenu> menuItems = navigationMenuContext.NavigationMenus.ToList();
- return View(menuItems);
- }
- [ChildActionOnly]
- public ActionResult GenerateMenu()
- {
- NavigationMenuContext navigationMenuContext = new NavigationMenuContext();
- List<NavigationMenu> menuItems = navigationMenuContext.NavigationMenus.ToList();
- string action = ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString() == "Index" ? "" : ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString();
- string controller = ControllerContext.ParentActionViewContext.RouteData.Values["controller"].ToString();
- foreach (var item in menuItems)
- {
- if (item.MenuChildren != null)
- {
- foreach (var cItem in item.MenuChildren)
- {
- if (cItem.Controller == controller && cItem.Action == action)
- {
- cItem.Selected = true;
- break;
- }
- else
- {
- cItem.Selected = false;
- }
- }
- }
- if (item.Controller == controller && item.Action == action)
- {
- item.Selected = true;
- break;
- }
- else
- {
- item.Selected = false;
- }
- }
- return PartialView("~/Views/Shared/_Navigation.cshtml", menuItems);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement