私は Razor の構文がとても気に入っていますが、完璧とは言えません。たとえば、次のマークアップ ブロックがあります。
@if (Model.FeaturedDestinations != null && Model.FeaturedDestinations.Count() > 0)
{
int column = 0;
foreach (var d in Model.FeaturedDestinations)
{
column++;
if (column > 4)
{
</div>
@{ column = 1; }
}
if (column == 1)
{
@:<div class="row-fluid">
}
<div class="span3">
@RenderDestination(d)
</div>
}
</div>
}
<div>
そのため、エディターは、開始タグの前に終了タグがあることを示す波線を表示します。私はそれで暮らすことができます。しかし、アプリを実行すると、実際には次の実行時エラーが発生します。
一致する開始タグのない終了タグ「div」が見つかりました。開始タグと終了タグのバランスは適切ですか?
明らかに、私はそれと一緒に暮らすことはできません!では、この場合に対処するためのトリックはありますか? 必要なマークアップに関する限り、自分が何をしているかを知っています。しかし、Razor はそうは考えておらず、引き継いでいます。
そして、MVC がバランスの取れたタグをチェックするサイクルを浪費しているのはなぜですか?