コード例 #1
0
 /// <summary>
 /// </summary>
 /// <param name="siteMapPermission"></param>
 /// <param name="mainMenu"></param>
 /// <param name="maxLevel"></param>
 /// <param name="currentLevel"></param>
 /// <returns>return true main this menu is active.</returns>
 private static void SubMenuMatch(HtmlHelper helper, SiteMapPermission siteMapPermission,
                                  MainMenu mainMenu, int maxLevel, int currentLevel)
 {
     for (int i = 0; i < mainMenu.Current.ChildNodes.Count; i++)
     {
         ISiteMapNode childNode = mainMenu.Current.ChildNodes[i];
         string       a         = childNode.Title;
         if (Match(siteMapPermission, childNode)) //�������disabled
         {
             var childMainMenu = new MainMenu
             {
                 Current = childNode,
             };
             mainMenu.SubMenus.Add(childMainMenu);
             if (currentLevel + 1 <= maxLevel)
             {
                 SubMenuMatch(helper, siteMapPermission, childMainMenu, maxLevel, currentLevel + 1);
                 if (childMainMenu.Current.Equals(helper.MvcSiteMap().SiteMap.CurrentNode))
                 {
                     childMainMenu.Actived = true;
                     mainMenu.Actived      = true;
                 }
             }
         }
     }
 }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="siteMapPermission"></param>
        /// <param name="maxLevel"></param>
        /// <returns></returns>
        public static IList <MainMenu> GetUserMenus(this HtmlHelper helper,
                                                    SiteMapPermission siteMapPermission, int maxLevel)
        {
            ISiteMapNode node   = helper.MvcSiteMap().SiteMap.RootNode;
            var          result = new List <MainMenu>();

            for (int i = 0; i < node.ChildNodes.Count; i++)
            {
                ISiteMapNode childNode = node.ChildNodes[i];
                if (Match(siteMapPermission, childNode))
                {
                    var mainMenu = new MainMenu
                    {
                        Current = childNode,
                    };
                    SubMenuMatch(helper, siteMapPermission, mainMenu, maxLevel, 0);
                    result.Add(mainMenu);
                }
            }
            return(result);
        }
コード例 #3
0
 private static bool Match(SiteMapPermission siteMapPermission, ISiteMapNode childNode)
 {
     return(siteMapPermission.IsAccessibleToUser(childNode) &&
            !childNode.MetaRobotsValues.Contains("disabled"));
 }