我在数据库中有一个名为“Tabel_Items”的表,其中包含以下字段:id
,parent
和child
:
我想生成html标签,例如:
<ul>
<li>parent1
<ul>
<li>child1</li>
<li>child2
<ul>
<li>child21</li>
<li>child22</li>
</ul>
</li>
</ul>
</li>
<li>parent2
<ul>
<li>child3</li>
</ul>
</li>
</ul>
我使用LINQ查询获取项目并将其传递给视图:
public ActionResult Index()
{
DataClasses1DataContext db = new DataClasses1DataContext();
var items = from i in db.Table_Items
select i;
return View(items);
}
如何在视图中循环显示“项目”并从中创建树列表?
我想要一个lambda表达式来选择那些首先包含“parentId == null”的行。我测试这样的代码,但有一个错误:
@foreach (var i in Model)
{
@Html.DisplayFor(x => i.ItemName.Where(i.ParentId==null));
}
答案 0 :(得分:0)
我解决了我的问题。谢谢我:
<ul>
@foreach (var x in Model.Where(f => f.ParentId == null))
{
<li>
@Html.DisplayFor(f => x.ItemName)
<ul>
@foreach (var y in Model.Where(c => c.ParentId == x.Id))
{
<li>
@Html.DisplayFor(c => y.ItemName)
<ul>
@foreach (var z in Model.Where(c => c.ParentId == y.Id))
{
<li>@Html.DisplayFor(c => z.ItemName)</li>
}
</ul>
</li>
}
</ul>
</li>
}
</ul>