有谁知道为什么这个 Razor 代码无法编译?
有人可以帮我编译这个剃刀语法片段吗?
@var count = 0;
@foreach (var column in Enumerable.Range(0, 20).Select(i => "Title " + i) {
if(count % 5 == 0) {
<tr>
}
<td>@column</td>
@if(count % 5 == 4) {
</tr>
}
count++;
}
Could someone help me get this razor syntax snippet to compile?
@var count = 0;
@foreach (var column in Enumerable.Range(0, 20).Select(i => "Title " + i) {
if(count % 5 == 0) {
<tr>
}
<td>@column</td>
@if(count % 5 == 4) {
</tr>
}
count++;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不需要
count
变量。我对达林的答案提出了一个替代解决方案:正如您在达林的答案和这个答案中看到的那样,当您在块内时,不需要
@
。此外,您的和
对编译器来说看起来“不均匀”,因此我们必须使用
@: 强制这些;
。最后,@var count = 0
必须位于像@{var count = 0}
这样的块中。更新:如果您确实需要索引(如果您没有使用
Range()
),那么您可以执行以下操作(使用Select
的重载) code> 为每个项目生成一个索引):You do not need the
count
variable. I've made an alternative solution to Darin´s answer:As you can see in Darin´s answer and this answer, you don't need
@
when you are inside a block. Furthermore, your<tr>
and</tr>
look "uneven" to the compiler, so we have to force these with@:<tr>
. And last,@var count = 0
will have to be in a block like@{var count = 0}
.Update: If you actually need an index (if you're not using
Range()
) then you can do as follows (using the overload ofSelect
which generates an index for each item):