Я хочу делать вложенные категории .. Нравится;Как я могу отобразить бесконечные вложенные категории на ASP.NET MVC?
Category 1
Sub Category 1.1
Sub Category 1.1.1
..
Sub Category 1.1.1.1.1.1.1.1
Category 2
Sub Category 2.1
Sub Category 2.2
Sub Categry 2.2.1
Category 3
Моя база данных shcema;
Мои ViewModel;
public class CategoriesViewModel
{
public CategoriesViewModel()
{
AltGroup = new List<CategoriesViewModel>();
}
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public List<CategoriesViewModel> SubCategories{ get; set; }
}
Моя функция;
private List<CategoriesViewModel> GenerateSub(List<Categories> categories)
{
List<CategoriesViewModel> categories= new List<CategoriesViewModel>();
foreach (var child in categories)
{
var subCategories = GenerateChildren(child.Categories1.ToList());
subCategories.Add(new CategoriesViewModel{ CategoryName = child.RoleGroupAdi, SubCategories= subCategories });
}
return subCategories;
}
My controller file;
private DbEntities db = new DbEntities();
public ActionResult KullaniciYetkiGuncelle(int id = 0)
{
ViewModel vm = new ViewModdel();
vm.categories = GenerateSub(db.Categories.ToList());
return View(vm);
}
Мой взгляд (я должен изменить его, я знаю);
@foreach (var item in Model.categories)
{
@item.CategoryName
<br />
foreach (var item2 in item.SubCategories)
{
@item2.CategoryName
<br />
foreach (var item3 in item2.SubCategories)
{
@item3.CategoryName
<br />
}
}
}
И результат; FALSE LISTING
Sub Category 1.1
Category 1
Sub Category 1.1
Sub Category 1.2
Sub Category 1.2.1
Sub Category 1.2.2
Sub Category 1.2.3
Sub Category 1.2
Sub Category 1.2.1
Sub Category 1.2.2
Sub Category 1.2.3
Sub Category 1.2.1
Sub Category 1.2.2
Sub Category 1.2.3
Но это должно быть; TRUE LISTING
Category 1
Sub Category 1.1
Sub Category 1.2
Sub Category 1.2.1
Sub Category 1.2.2
Sub Category 1.2.3
Я делаю ошибку, но я не могу найти, и я не имею представления о представлении.
В чем проблема, вы беспокоитесь о пространстве или скорости? Если это так, вам не нужно извлекать все уровни за один. Вы можете использовать ту же логику «подкачки», которая используется при просмотре длинных таблиц. – NoChance
Какой контроль вы используете для отображения этих записей? –
Извините, ребята, я меняю что-то на свой вопрос .. Проверьте его снова PLS .. – yusuf