我的数据库查询有问题。
我有这张桌子:
id | CatName | ParentIdCat
我想创建一个这样的列表:
一种简短的菜单 子类别的数量不是固定的,而是可变的。
我使用剃刀(不是MVC)。
答案 0 :(得分:0)
当您不知道层次结构中有多少级别时,您需要使用recursive function来显示数据。您可以在Razor网页中使用helper
来做到最好。您可以一次性选择所有数据,然后将其传递给可能如下所示的帮助程序:
@helper BuildMenu(IEnumerable<dynamic> menu, int? parentid = null) {
var items = menu.Where(m => m.ParentIdCat == parentid);
var topLevel = true;
if (items.Any()) {
if(items.First().ParentIdCat.HasValue){
topLevel = false;
}
foreach (var item in items) {
if (!topLevel)
{
@: ->
}
else
{
<br />
}
@item.CatName
@BuildMenu(menu, item.Id)
}
}
}
我写了article looking at using Recursion in Razor Web Pages。它应该提供更多的背景和帮助。