委托递归子级树
//定义树实体类
public class CityTreeView
{
public int id { get; set; }
public int ParentId { get; set; }
public string name { get; set; }
public List<CityTreeView> children { get; set; }
}
public ActionResult GetCityTree()
{
List<CityTreeView> list = new List<CityTreeView>();
list.Add(new CityTreeView() { id = 1, ParentId = 0, name = "湖南省" });
list.Add(new CityTreeView() { id = 2, ParentId = 1, name = "长沙市" });
list.Add(new CityTreeView() { id = 3, ParentId = 2, name = "芙蓉区" });
list.Add(new CityTreeView() { id = 4, ParentId = 1, name = "岳阳市" });
list.Add(new CityTreeView() { id = 5, ParentId = 4, name = "岳阳楼区" });
list.Add(new CityTreeView() { id = 6, ParentId = 0, name = "广东省" });
list.Add(new CityTreeView() { id = 7, ParentId = 6, name = "深圳" });
list.Add(new CityTreeView() { id = 8, ParentId = 7, name = "龙华区" });
list.Add(new CityTreeView() { id = 9, ParentId = 6, name = "广州" });
list.Add(new CityTreeView() { id = 10, ParentId = 9, name = "白云区" });
Func<int, List<CityTreeView>> GetTree = null;
GetTree = new Func<int, List<CityTreeView>>((parentid) => {
var r = list.Where(p => p.ParentId == parentid).ToList();
if (r.Count() > 0)
{
foreach (var item in r)
{
item.children = GetTree(item.id);
}
}
return r;
});
var results = GetTree(0).Where(s => s.children != null && s.children.Count > 0).ToList();
return Json(results,JsonRequestBehavior.AllowGet);
}

浙公网安备 33010602011771号