public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); List<Page> pages = Page.GetMenu(); Menu mainMenu = new Menu(Display.MainMenu, filterContext.RequestContext.RouteData.Values); foreach (Page p in pages) { MenuItem item = new MenuItem(mainMenu, p.Title, p.Url); mainMenu.Items.Add(item); } filterContext.Controller.ViewBag.MainMenu = mainMenu; }
/// <summary> /// /// </summary> /// <param name="menu"></param> /// <param name="parent"></param> /// <param name="title"></param> /// <param name="action"></param> /// <param name="controller"></param> /// <param name="visible"></param> public MenuItem(Menu menu, MenuItem parent, string title, string action, string controller, bool visible) : this(menu, parent, title, action, controller, visible, null, null) { }
/// Creates new instance of menu item /// </summary> /// <param name="menu">Menu this itm=em is belongs to.</param> /// <param name="parent">Parent MenuItem of this item.</param> /// <param name="title">The title of menu item.</param> /// <param name="action">The target controller action.</param> /// <param name="controller">The target controller.</param> /// <param name="visible">Set visibility of menu item while rendering.</param> /// <param name="htmlAttributes">An a html attributes of the menu item.</param> /// <param name="routeValues">An a additional route values to specify menu item link target.</param> public MenuItem(Menu menu, MenuItem parent, string title, string action, string controller, bool visible, IDictionary<string, object> htmlAttributes, IDictionary<string, object> routeValues) { this.Menu = menu; this.Parent = parent; this.Title = title; this.Action = action; this.Controller = controller; this.HtmlAttributes = htmlAttributes; this.RoutesValues = routeValues; this.Visible = visible; this.Items = new List<MenuItem>(); }
/// <summary> /// /// </summary> /// <param name="menu"></param> /// <param name="parent"></param> /// <param name="title"></param> /// <param name="action"></param> /// <param name="controller"></param> public MenuItem(Menu menu, MenuItem parent, string title, string action, string controller) : this(menu, parent, title, action, controller, true, null, null) { }
/// <summary> /// /// </summary> /// <param name="menu"></param> /// <param name="parent"></param> /// <param name="title"></param> /// <param name="action"></param> /// <param name="controller"></param> /// <param name="visible"></param> /// <param name="htmlAttributes"></param> /// <param name="routeValues"></param> public MenuItem(Menu menu, MenuItem parent, string title, string action, string controller, bool visible, object htmlAttributes, object routeValues) : this(menu, parent, title, action, controller, visible, null, null) { this.HtmlAttributes = htmlAttributes.ToDictionary(); this.RoutesValues = routeValues.ToDictionary(); }