在我看来,Razor 告诉我,我的 Foreach 循环缺少右大括号 ( }
)
它还告诉我我的<div class="row">
缺少结束标记。
@{int spanCounter = 0;}
@foreach (var item in Model)
{
if(spanCounter == 0)
{
<div class="row">
}
spanCounter += item.Span;
<div class="span@(item.Span)">
@item.Html
</div>
@if(spanCounter == 12)
{
@spanCounter = 0
</div>
}
}
我见过类似的问题,但他们似乎关注的是 Razor 期望正确分层的事实。即,这是非法的:
if(condition)
{
<foo>
}
else
{
<foo>
}
</foo>
更新 该模型是 Html 内容“ block ”的列表
为了更清楚一点,我想在 <div></div>
中写出多个 block ( <div></div>
) “行”
- 如果 spanCounter 为 0 BEGIN 行。
- 写入内容:
<div></div>
阻塞直到达到最大跨度宽度(12) - 结束行,重置计数器,返回到 1。
最佳答案
还有另一种解决方法可以避免重复代码:
if(condition)
{
@:<foo>
}
else
{
@:<foo>
}
</foo>
关于asp.net - Razor 缺少闭合支架/标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244349/