public ActionResult MenuIndex() { MenuTree mt = new MenuTree(); List <MenuTree> listmenuTree = mt.GetTreeData(); List <MenuTree> menuTree = mt.GetMenuTree(listmenuTree); return(View(menuTree)); }
//public ActionResult Index() //{ // ObjectData objtemp = new ObjectData(); // List<ObjectData> listobjnullsite = objtemp.GetObjects(); //load all the available uploaded list which has site id as null // //List<ObjectData> menuTree = objtemp.GetMenuTree(listobjnullsite, listobjnullsite.FirstOrDefault().ObjType, listobjnullsite.FirstOrDefault().ObjSubType); // List<ObjectData> menuTree = objtemp.GetMenuTree(listobjnullsite, "OT1"); // return View(menuTree); //} public JsonResult Test() { MenuTree mt = new MenuTree(); List <MenuTree> listmenuTree = mt.GetTreeData(); List <MenuTree> menuTree = mt.GetMenuTree(listmenuTree); //List<MenuTree> menuTree = mt.GetMenuTree(listmenuTree, listmenuTree.FirstOrDefault().ObjType); return(Json(menuTree, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取菜单树 /// </summary> /// <returns></returns> // [EntityAuthorize(PermissionFlags.Detail)] public List <MenuTree> GetMenu() { var user = ManageProvider.User ?? XCode.Membership.UserX.FindAll().FirstOrDefault(); var fact = ObjectContainer.Current.Resolve <IMenuFactory>(); var menus = fact.Root.Childs; if (user?.Role != null) { menus = fact.GetMySubMenus(fact.Root.ID, user); } // 如果顶级只有一层,并且至少有三级目录,则提升一级 if (menus.Count == 1 && menus[0].Childs.All(m => m.Childs.Count > 0)) { menus = menus[0].Childs; } menus = menus.Where(m => m.Visible).ToList(); var menuTree = MenuTree.GetMenuTree(pMenuTree => { return(fact.GetMySubMenus(pMenuTree.ID, user).Where(m => m.Visible).ToList()); }, list => { var menuList = (from menu in list // where m.Visible select new MenuTree { ID = menu.ID, Name = menu.DisplayName, Url = Url.Content(menu.Url), Icon = menu.Icon, Class = "" }).ToList(); return(menuList.Count > 0 ? menuList : null); }, menus.ToList()); var childs = menuTree[0].Children; return(menuTree); }
/// <summary> /// 获取菜单 /// </summary> /// <returns>菜单列表</returns> private IList <MenuTree> GetMenu() { var user = _provider.Current as IUser ?? XCode.Membership.User.FindAll().FirstOrDefault(); var fact = ManageProvider.Menu; var menus = fact.Root.Childs; if (user?.Role != null) { menus = fact.GetMySubMenus(fact.Root.ID, user, true); } // 如果顶级只有一层,并且至少有三级目录,则提升一级 if (menus.Count == 1 && menus[0].Childs.All(m => m.Childs.Count > 0)) { menus = menus[0].Childs; } var menuTree = MenuTree.GetMenuTree(pMenuTree => { var subMenus = fact.GetMySubMenus(pMenuTree.ID, user, true); return(subMenus); }, list => { var menuList = (from menu in list // where m.Visible select new MenuTree { ID = menu.ID, Name = menu.Name, DisplayName = menu.DisplayName ?? menu.Name, Url = menu.Url, Icon = menu.Icon, Visible = menu.Visible, ParentID = menu.ParentID, Permissions = menu.Permissions }).ToList(); return(menuList.Count > 0 ? menuList : null); }, menus); return(menuTree); }