Вот мое решение моей проблемы со списком «родитель-потомок»:
Я создал ViewModel для размещения моих категорий и страниц:
public class HomeViewModels
{
[Key]
public int HomeViewKey { get; set; } //This is a MUST!
public IEnumerable<Category> ViewCategories { get; set; }
public IEnumerable<Page> ViewPages { get; set; }
public void CreateHomeViewModel(IEnumerable<Category> categories,
IEnumerable<Page> pages)
{
this.ViewCategories = categories;
this.ViewPages = pages;
}
}
Затем отредактировал мой контроллер для заполнения модели представления:
public ActionResult Index()
{
HomeViewModels homePages = new HomeViewModels();
homePages.CreateHomeViewModel(db.Categories.ToList(),
db.Pages.ToList());
return View(homePages);
}
и, наконец, создание списков ul-li со следующими данными:
@{var hvCategories = Model.ViewCategories;}
@foreach (var categories in hvCategories)
{
<li>@Html.ActionLink(categories.Name, "Index", "Home")
<ul>
@{var hvPages = Model.ViewPages
.Where(p => p.CategoryID == categories.CategoryID);}
@foreach (var pages in hvPages)
{
<li>@Html.ActionLink(pages.Name, "Index", "Home")</li>
}
</ul>
</li>
Надеюсь, это поможет всем, кто планирует построить вложенный список, используя модель родитель-потомок.Это заняло у меня два дня, чтобы понять.Ура!