我有一个从模型传递到 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/