我试图制作一个包含类别列表的视图。这些类别有子类别,有些子类别也有子类别。
在内存中我有一个Categorie对象列表。
我的分类对象:
namespace modellen
{
public class Categorie
{
public int Id { get; set; }
public string Naam { get; set; }
public int HoofdCategorieId { get; set; }
}
}
我的观点:
@using modellen
@model List<Categorie>
@{
ViewBag.Title = "Categorieen";
}
<h2>Categorieen</h2>
<ul>
@foreach (Categorie c in Model)
{
if (c.HoofdCategorieId == 0)
{
<li>@c.Naam </li>
}
}
</ul>
如果属性&#34; HoofdCategorieId&#34;一个对象是0,这意味着它不是任何东西的子类别。如果属性&#34; HoofdCategorieId&#34;例如,它是2,这意味着它是一个对象的子类别,其中属性&#34; Id&#34;也是2。
我无法弄清楚如何从这里继续使子类别出现在每个相应的类别下面。
我该怎么做?
答案 0 :(得分:1)
@foreach (Categorie c in Model.Where(w => w.HoofdCategorieId == 0))
{
<li>@c.Naam </li>
foreach (Categorie subC in Model.Where(w => w.HoofdCategorieId == c.Id))
{
<li style="margin-left:10px;">@subC.Naam </li>
foreach (Categorie subSubC in Model.Where(w => w.HoofdCategorieId == subC.Id))
{
<li style="margin-left:20px;">@subSubC.Naam </li>
}
}
}
使用linq的Where
来遍历您想要的项目