public List <AllMenuDto> GetMenuTreeByPostion(int positionId, int parentId = 0) { //找出根目录 List <AllMenuDto> parents = (from menu in _ctx.Menu where menu.ParentId == parentId select new AllMenuDto { Id = menu.Id, Label = menu.Name, PositionId = menu.PositionId, }).ToList(); List <AllMenuDto> menus = new List <AllMenuDto>(); foreach (AllMenuDto menu in parents) { int[] positionIds = StringToInt(menu.PositionId); if (Array.IndexOf(positionIds, positionId) != -1) //-1不存在 { AllMenuDto menuNode = new AllMenuDto() { Id = menu.Id, Label = menu.Label, PositionId = menu.PositionId, Children = GetMenuTreeByPostion(positionId, menu.Id) }; menus.Add(menuNode); } } ; return(menus); }
public List <AllMenuDto> GetMenuTree(int parentId = 0) { List <AllMenuDto> allMenuDtos = (from menu in _ctx.Menu where menu.ParentId == parentId select new AllMenuDto { Id = menu.Id, Label = menu.Name, PositionId = menu.PositionId, }).ToList(); List <AllMenuDto> menus = new List <AllMenuDto>(); foreach (AllMenuDto item in allMenuDtos) { AllMenuDto menu = new AllMenuDto() { Id = item.Id, Label = item.Label, PositionId = item.PositionId, Children = GetMenuTree(item.Id) }; menus.Add(menu); } return(menus); }