2017-06-14 104 views
1

我試圖做一個視圖,其中包含一個類別列表。這些類別具有子類別,某些子類別也具有子類別。如何製作包含多個子類別的類別列表?

在內存中我有一個Categorie對象列表。

我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> 

如果一個對象的屬性 「HoofdCategorieId」 是0,這意味着它不是任何一個子類別。如果屬性「HoofdCategorieId」爲2例如,這意味着它是一個對象的屬性「Id」也是2的子類別。

我不知道怎麼會如何繼續從這裏做出子類別出現在每個類別下面。

我該怎麼做?

+0

運用[從數據庫中顯示分層數據]答案項目(https://stackoverflow.com/q/22666357/205233)將允許任意嵌套深度,但將需要改變你的模型。 – Filburt

回答

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> 

     } 
    } 
} 

使用Where從LINQ遍歷你想

相關問題