private void InitMenuViewData(ActionExecutingContext filterContext) { MenuViewData menuViewData = new MenuViewData(); User user = this._cuyahogaContext.CurrentUser; if (user != null && user.IsAuthenticated) { var nodes = this._sitemapProvider.GetMvcChildNodes(this._sitemapProvider.RootNode); var currentNode = this._sitemapProvider.CurrentNode; UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext); // mainmenu foreach (MvcSiteMapNode node in nodes) { if (this._sitemapProvider.IsAccessibleToUser(filterContext.HttpContext, node, this._cuyahogaContext.CurrentSite)) { MenuItemData menuItemData = GenerateMenuItemFromSiteMapNode(filterContext, node, currentNode, urlHelper); bool isSystem = Convert.ToBoolean(node["system"]); if (isSystem) { menuViewData.AddOptionalMenuItem(menuItemData); } else { menuViewData.AddStandardMenuItem(menuItemData); } if (node.HasChildNodes) { foreach (var childNode in node.ChildNodes) { MvcSiteMapNode mvcChildNode = childNode as MvcSiteMapNode; if (mvcChildNode != null) { if (this._sitemapProvider.IsAccessibleToUser(filterContext.HttpContext, mvcChildNode, this._cuyahogaContext.CurrentSite)) { menuItemData.AddChildMenuItem(GenerateMenuItemFromSiteMapNode(filterContext, mvcChildNode, currentNode, urlHelper)); } } } } } } } filterContext.Controller.ViewData.Add("MenuViewData", menuViewData); }