简单的方案(知道几级):
<ul>
@{
var items = getitems();//此处获取所有数据
foreach(var item in items.Where(o=>o.parentID==0))
{
<li><a href=''>@item.Name</a>
@{
var children = items.Where(o=>o.parentID==item.ID);
if(children.Cunt() > 0)
{
<ul>
@{
foreach(var child in children)
{
<li>@child.Name</li>
}
}
</ul>
}
}
</li>
}
}
</ul>
假如级别不确定,那么就最好使用递归方案:
list.cshtml:
@model IEnumerable
<ul>
@{
foreach(var item in Model)
{
<li><a href=''>@item.Name</a>
@{
var children = item.GetChildren();
if(children.Count()>0)
{
@Html.Partial("list", children)
}
}
</li>
}
}
</ul>
谢谢,用第一种就解决了。因为我这里暂时还只有二级,所以用第一种就解决了。
第二种我还没有试,等下我试一下。
递归的方法也已经试用成功。谢谢了。