递归生成树形菜单

递归生成树

复制代码
    //调用的方法
     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; }

    }
复制代码

 

posted @   幽冥狂_七  阅读(2127)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示