【问题标题】:Query from database [Razor]从数据库查询 [Razor]
【发布时间】:2015-02-10 23:33:52
【问题描述】:

我在从数据库查询时遇到问题。

我有这张桌子:

标识 |猫名 | ParentIdCat

我想创建一个这样的列表:

  • Cat1
  • Cat2 -> SubCat2a
  • Cat3 -> SubCat3a -> SubCat3b -> ...

一种简短的菜单 子类别的数量不是固定的而是可变的。

我使用剃须刀(不是 MVC)。

【问题讨论】:

    标签: database razor menu


    【解决方案1】:

    当您不知道层次结构中有多少级别时,您需要使用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。它应该提供更多的背景知识和帮助。

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多