Mam zagnieżdżony obiekt danych dla zestawu elementów w obrębie kategorii. Każda kategoria może zawierać podkategorie i nie ma ustalonego limitu głębokości podkategorii. (System plików miałby podobną strukturę.) Wygląda to mniej więcej tak:Rekursja w widoku ASP.NET MVC
class category
{
public int id;
public string name;
public IQueryable<category> categories;
public IQueryable<item> items;
}
class item
{
public int id;
public string name;
}
jestem przechodzącej listę kategorii do moim zdaniem jak IQueryable<category>
. Chcę wypisać kategorie jako zestaw bloków zagnieżdżonych nieuporządkowanych (<ul>
). Mógłbym zagnieździć pętle foreach, ale wtedy głębokość podkategorii byłaby ograniczona przez liczbę zagnieżdżonych bloków foreach. W WinForms zrobiłem podobne przetwarzanie przy użyciu rekurencji do zapełnienia TreeView
, ale nie widziałem żadnych przykładów użycia rekursji w widoku ASPV MVC.
Czy rekursję można wykonać w widoku ASPX? Czy są inne silniki widoku, które zawierają rekurencję dla danych wyjściowych widoku?
Kiedy pisałem to pytanie, nie sądzę Zrozumiałem różnicę pomiędzy 'IQueryable' i' IEnumerable'. Używałbym 'IEnumerable' teraz, ponieważ widok nie wykonuje żadnych kwerend i powinien wyliczać tylko dane. – CoderDennis