递归生成树形菜单
递归生成树
//调用的方法
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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了