c# - 如何从平面列表构建嵌套 HTML 列表

标签 c# jquery html razor

我有一个从模型传递到 View 的元组列表。我正在尝试使用从模型获得的元组列表创建嵌套 HTML 列表。我的列表正在按正确的顺序返回。如果嵌套列表项,它可以是无限多个。

我尝试使用 foreach 循环来迭代元组列表,但是标记仅显示 <UL>紧接着彼此并且不嵌套。

我的 foreach 循环看起来像这样

        @foreach (var item in Model)
            {
                <ul class="nav-breadcrumbs">
                    <li>
                        <a href="@item.Item2">@item.Item1</a>
                    </li>
                </ul>
            }

我希望每个项目都是前一个项目的子项目。如果需要的话我可以改变我的模型。或者可以将数据传递给 JavaScript 变量并使用 jquery 构建嵌套列表。 我希望我的标记最终看起来像这样。并让它继续嵌套

<ul>
     <li>
          <a>link</a>
               <ul>
                    <li>
                          <a>link</a>
                    </li>
               </ul>
     </li>
</ul>

最佳答案

另一个(相对更简单)的解决方案是在解析之前创建 View 上的 Html 字符串,如下所示:

Html 解析器不允许您先打开所有 ul、li 标记,然后在最后关闭所有标记,因此您必须这样做:

@{
     string html = "";

     foreach (var item in Model)
     {
       html += "<ul class='nav-breadcrumbs'><li><a href=" + item.Item2 + ">" + item.Item1 + "</a>";
     }

     foreach (var item in Model)
     {
        html += "</li></ul>";
     }
  }

  @Html.Raw(html)

关于c# - 如何从平面列表构建嵌套 HTML 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794689/

相关文章:

c# - 如何在排序数组中定位一个点?

c# - 在何处以不同方式调用函数之间有什么区别

jquery - 从 div 卸载 plupload

javascript - 寻找资源来解释安全风险

javascript - 自动完成 json_encode 按列返回

c# - SqlCommand 超时,即使在 SQL Studio 中相同的查询很快

C# 注册表搜索,从结果反向遍历

html - 将整个标签元素对齐到其父 div 的底部

jquery - jquery的性能可见

javascript - 如何使用 CSS 或 JQuery 调整 HTML 选择选项下拉框的大小