gpt4 book ai didi

asp.net-mvc - Razor View 引擎 : Complex looping and HTML

转载 作者:行者123 更新时间:2023-12-03 09:51:58 25 4
gpt4 key购买 nike

我当前的项目中有很多复杂的 HTML 报告,在那里我们使用 rowspans 和 colspans 执行大量的 TR 和 TD 条件渲染。

它有时看起来像这样(这是非常简化的):

<tr>
@foreach (var ourItem in ourList) {
if (ourItem != ourList.First()) {
<tr>
}
<td></td>
</tr>
}

然而,Razor 声称:“foreach 循环缺少一个结束的“}”字符”。 (在 Visual Studio 中)

我试图包装 <tr><text></text>这使得结束 } 问题消失,只是在运行时发现:“遇到没有匹配的开始标签的结束标签“tr”。您的开始/结束标签是否正确平衡”。

我将如何在说服 Razor 根本不关心 HTML 的同时进行这种条件渲染,因为在所有循环完成后 HTML 是平衡的。或者至少在使用 ASP.NET View 引擎时就是这种情况。

最佳答案

Visual Studio Intellisense 和语法突出显示不是最好的之一,但在这种情况下,它会警告您,如果不满足条件,您可能会得到无效标记,您不应该为此责怪它。

重要的是您的项目运行良好,但您可能会考虑将此逻辑外部化为 HTML 帮助程序,因为如果您所说的是真的,这是您在 View 中拥有的内容的简化版本,我什至不想想象您的实际代码看起来。

恕我直言,在一个 View 中有如此多的条件逻辑是一种滥用。您绝对应该考虑使用 HTML 帮助程序或控件,例如 MVCContrib Grid .

更新:

您可以尝试以下hack:

<tr>
@foreach (var ourItem in ourList) {
if (ourItem != ourList.First()) {
@:<tr>
}
@:<td></td>
@:</tr>
}

关于asp.net-mvc - Razor View 引擎 : Complex looping and HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com