public MenuItem GetMenuItem(string pageAlias) { return(MenuItemProvider.GetMenuItems() .LatestVersion(_latestVersionEnabled) .Published(!_latestVersionEnabled) .OnSite(SiteContext.CurrentSiteName) .Culture(_cultureName) .CombineWithDefaultCulture() .WhereEquals("NodeAlias", pageAlias) .TopN(1)); }
// GET: Loads and displays the site's navigation menu public ActionResult GetMenu() { // Loads all menu items using the page type's generated provider // Uses the menu item order from the content tree in the Kentico 'Pages' application var menuItems = MenuItemProvider.GetMenuItems() .Columns("MenuItemText", "MenuItemPage") .OrderBy("NodeOrder"); // Loads the pages selected within the menu items // The data only contains values of the NodeGUID identifier column var pages = DocumentHelper.GetDocuments() .WhereIn("NodeGUID", menuItems.Select(item => item.MenuItemPage).ToList()) .Columns("NodeGUID"); // Creates a collection of view models based on the menu item and page data var model = menuItems.Select(item => new MenuItemViewModel() { MenuItemText = item.MenuItemText, // Gets the URL for the page whose GUID matches the given menu item's selected page MenuItemRelativeUrl = pages.FirstOrDefault(page => page.NodeGUID == item.MenuItemPage).RelativeURL }); return(PartialView("_SiteMenu", model)); }