私の見解では、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>
UPDATE モデルは、HTMLコンテンツの「ブロック」のリストです。
もう少し明確にするために、 「行」に複数のブロック( <div></div>
)を書きたい<div></div>
- spanCounterが0BEGIN行の場合。
- コンテンツの書き込み:
<div></div>
最大スパン幅に達するまでブロックします(12) - 行を終了し、カウンターをリセットし、1に戻ります。