ASP.NET MVC Razor не примет мою действительную разметку

Мне очень нравится синтаксис 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> пометка перед открытием. Я могу жить с этим. Но когда я запускаю приложение, я на самом деле получаю следующую ошибку во время выполнения:

Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?

Очевидно, я не могу с этим жить! Так есть ли хитрость для решения этого дела? Я знаю, что я делаю, насколько мне нужна разметка. Но Razor так не думает, и он вступает во владение.

И почему, черт возьми, MVC тратит циклы проверки на сбалансированные теги?

Ответы на вопрос(2)

Ваш ответ на вопрос