上图是我的数据库内容
public ActionResult GetArea() { List<City> rootList = new List<City>(); foreach(var item in context.Area.Where(a => a.isroot == true)) { rootList.Add(new City { id = item.id, title = item.areaname, children = GetCity(item.id) }); } string str=JsonConvert.SerializeObject(rootList); return Json(str,JsonRequestBehavior.AllowGet); } public List<City> GetCity(int id) { //aa是id的所有孩子 var aa = context.Area.Where(a => a.parentid == id); if(aa.Count()==0) { return null; } List<City> child = new List<City>(); foreach(var item in aa)//遍历所有孩子 { child.Add(new City { id = item.id, title = item.areaname, children = GetCity(item.id) }); } return child; }此处是我用Ef框架写的 这是layui文档上面告诉我们绑定树形组件上所需要的属性这里我们只需要title,id和children这三个属性
public class City { public string title { get; set; } public int id { get; set; } public List<City> children { get; set; } }City类是我根据上面三个属性来创建的,方便页面发送ajax请求时返回的数据和树形组件在渲染时所需的data格式相同
"[{\"title\":\"河南省\",\"id\":1,\"children\":[{\"title\":\"洛阳市\",\"id\":2,\"children\":[{\"title\":\"涧西区\",\"id\":4,\"children\":[{\"title\":\"长安路\",\"id\":5,\"children\":[{\"title\":\"河南科技大学\",\"id\":6,\"children\":null},{\"title\":\"东方医院\",\"id\":11,\"children\":null}]}]},{\"title\":\"西工区\",\"id\":8,\"children\":[{\"title\":\"解放路\",\"id\":9,\"children\":[{\"title\":\"空导院\",\"id\":10,\"children\":null}]}]}]},{\"title\":\"郑州市\",\"id\":3,\"children\":[{\"title\":\"金水区\",\"id\":7,\"children\":null}]}]}]" //这是返回的json串最后在页面上的展示效果 如下图:
----------------------------结束------------------------------ 希望最后能帮到大家,第一次写博客,看完点个赞再走呗