如何列出包含多个子类别的类别?

时间:2017-06-14 15:08:51

标签: c# asp.net

我试图制作一个包含类别列表的视图。这些类别有子类别,有些子类别也有子类别。

在内存中我有一个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。

我无法弄清楚如何从这里继续使子类别出现在每个相应的类别下面。

我该怎么做?

1 个答案:

答案 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来遍历您想要的项目