Вывод MVC If в представлении

У меня проблема с выражением IF внутри MVC View. Я пытаюсь использовать его для создания строки для каждых трех элементов. Пожалуйста, проверьте этот код и этот экран для печати здесь: http://postimg.org/image/ieqiyxn9v/

<div class="content">
    <div class="container">

        @if (ViewBag.Articles != null)
        {
            int nmb = 0;
            foreach (var item in ViewBag.Articles)
            {

                if (nmb % 3 == 0) { <div class="row">  }

                        <a href="@Url.Action("Article", "Programming", new { id = item.id })">

                            <div class="tasks">

                                <div class="col-md-4">

                                    <div class="task important">
                                        <h4>@item.Title</h4>
                                        <div class="tmeta"><i class="icon-calendar"></i> @item.DateAdded - Pregleda:@item.Click  <i class="icon-pushpin"></i> Authorrr  </div>

                                    </div>

                                </div>
                            </div>
                        </a>
                        if (nmb % 3 == 0) { </div>}

            }
         }
    </div>
</div>

Ответ 1

Вам нужно только префикс инструкции if с помощью @, если вы еще не находитесь внутри блока кода бритвы.

Изменить: у вас есть пара ошибок с вашим кодом прямо сейчас.

Вы объявляете nmb, но никогда ничего не делаете со значением. Поэтому вам нужно выяснить, что это на самом деле должно делать. Чтобы исправить ваш код, вам нужно сделать несколько крошечных изменений:

@if (ViewBag.Articles != null)
{
    int nmb = 0;
    foreach (var item in ViewBag.Articles)
    {
        if (nmb % 3 == 0)
        {
            @:<div class="row"> 
        }

        <a href="@Url.Action("Article", "Programming", new { id = item.id })">
            <div class="tasks">
                <div class="col-md-4">
                    <div class="task important">
                        <h4>@item.Title</h4>
                        <div class="tmeta">
                            <i class="icon-calendar"></i>
                                @item.DateAdded - Pregleda:@item.Click
                            <i class="icon-pushpin"></i> Authorrr
                        </div>
                    </div>
                </div>
            </div>
        </a>
        if (nmb % 3 == 0)
        {
            @:</div>
        }
    }
}

Важная часть здесь - @:. Это короткая рука <text></text>, которая используется, чтобы заставить движок бритвы отображать текст.

Еще одна вещь, стандарт HTML указывает, что теги a могут содержать только встроенные элементы, и прямо сейчас вы помещаете div, который является элементом уровня блока, внутри a.

Ответ 2

Каждый раз, когда вы используете синтаксис html, вам нужно запустить следующий оператор бритвы с помощью @. Так что это должно быть @if....