Итак, я построил рекурсивную функцию, которая генерирует коллекцию Category
объектов.
[ChildActionOnly]
public ActionResult FindAllCategorias()
{
var categoriasDb = _categoriaRepository.FindAllCategorias().Where(s => s.CategoriaPadreId == null);
List<CategoriaModel> model = new List<CategoriaModel>();
foreach (var categoria in categoriasDb)
{
model.Add(new CategoriaModel()
{
CategoriaId = categoria.CategoriaId,
Nombre = categoria.Nombre,
Encabezado = categoria.Encabezado
});
}
foreach (var categoriaModel in model)
{
categoriaModel.Subcategorias = FindSubcategoriesForCategory(categoriaModel.CategoriaId);
}
return PartialView(model);
}
private List<CategoriaModel> FindSubcategoriesForCategory(int id)
{
var subcategorias = _categoriaRepository.FindAllCategorias().Where(c => c.CategoriaPadreId == id);
List<CategoriaModel> subcategoriasModel = new List<CategoriaModel>();
foreach (var subcategoria in subcategorias)
{
subcategoriasModel.Add(new CategoriaModel()
{
CategoriaId = subcategoria.CategoriaId,
Nombre = subcategoria.Nombre,
Encabezado = subcategoria.Encabezado,
Subcategorias = FindSubcategoriesForCategory(subcategoria.CategoriaId)
});
}
return subcategoriasModel;
}
Теперь, на мой взгляд, как вы предлагаете мне использовать рекурсию, чтобы выкладывать каждую категорию в шаблон, который я выбрал? Я не уверен, как что-то подобное в View.