递归生成树形菜单
递归生成树
//调用的方法
public ActionResult TreeView() { List<TreeModel> ltm = this.GetTrees(); string tree = JsonConvert.SerializeObject(ltm).ToString(); return Content(tree); } public List<TreeModel> GetTrees() { List<ModuleEntity> listQuery = map.GetList().ToList<ModuleEntity>(); List<ModuleEntity> me = listQuery.Where(t => t.F_ParentId == "0").ToList<ModuleEntity>(); if (me==null) { return null; } List<ModuleEntity> Lme = me.ToList<ModuleEntity>(); List<TreeModel> tm = new List<TreeModel>(); foreach (ModuleEntity item in Lme) { TreeModel tms = new TreeModel(); tms.id = item.F_Id; tms.name = item.F_FullName; tms.parentId = item.F_ParentId; tms.spread = "true"; List<TreeModel> child = new List<TreeModel>(); GetTree(listQuery, child, item.F_Id); tms.children = child; tm.Add(tms); } return tm; } //递归获取数据 public void GetTree(List<ModuleEntity> list,List<TreeModel> listTree,string parentId) { foreach (ModuleEntity item in list) { if (item.F_ParentId==parentId) { TreeModel tm = new TreeModel(); tm.id=item.F_Id; tm.parentId = item.F_ParentId; tm.name = item.F_FullName; tm.spread = "true"; tm.children = new List<TreeModel>(); listTree.Add(tm); GetTree(list,tm.children,tm.id); } } }
树形菜单类
public class TreeModel { public string id { get; set; } public string parentId { get; set; } public string name { get; set; } public string spread { get; set; } public string href { get; set; } public List<TreeModel> children { get; set; } }