Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. public class NavigationMenu
  2. {
  3.  
  4. [Key]
  5. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  6. public int Id { get; set; }
  7.  
  8. public string Text { get; set; }
  9. public string Action { get; set; }
  10. public string Controller { get; set; }
  11. public string Icon { get; set; }
  12. public bool Selected { get; set; }
  13.  
  14. public List<NavigationMenu> MenuChildren;
  15.  
  16. }
  17.  
  18. public class NavigationMenuContext : DbContext
  19. {
  20.  
  21. public NavigationMenuContext() : base("name=DefaultConnection")
  22. {
  23. }
  24.  
  25. public DbSet<NavigationMenu> NavigationMenus { get; set; }
  26.  
  27. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  28. {
  29.  
  30. base.OnModelCreating(modelBuilder);
  31. }
  32. }
  33.  
  34. public class NavigationController : Controller
  35. {
  36.  
  37. // GET: NewMenu
  38. public ActionResult Index()
  39. {
  40. NavigationMenuContext navigationMenuContext = new NavigationMenuContext();
  41. List<NavigationMenu> menuItems = navigationMenuContext.NavigationMenus.ToList();
  42. return View(menuItems);
  43. }
  44.  
  45. [ChildActionOnly]
  46. public ActionResult GenerateMenu()
  47. {
  48.  
  49. NavigationMenuContext navigationMenuContext = new NavigationMenuContext();
  50. List<NavigationMenu> menuItems = navigationMenuContext.NavigationMenus.ToList();
  51.  
  52. string action = ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString() == "Index" ? "" : ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString();
  53. string controller = ControllerContext.ParentActionViewContext.RouteData.Values["controller"].ToString();
  54.  
  55. foreach (var item in menuItems)
  56. {
  57. if (item.MenuChildren != null)
  58. {
  59. foreach (var cItem in item.MenuChildren)
  60. {
  61. if (cItem.Controller == controller && cItem.Action == action)
  62. {
  63. cItem.Selected = true;
  64. break;
  65. }
  66. else
  67. {
  68. cItem.Selected = false;
  69. }
  70. }
  71. }
  72. if (item.Controller == controller && item.Action == action)
  73. {
  74. item.Selected = true;
  75. break;
  76. }
  77. else
  78. {
  79. item.Selected = false;
  80. }
  81. }
  82.  
  83. return PartialView("~/Views/Shared/_Navigation.cshtml", menuItems);
  84. }
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement