视图中的MVC If语句

Nez*_*zir 18 c# asp.net-mvc razor

我在MVC View中的IF语句有问题.我正在尝试使用它为每三个项目创建行.

<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>
Run Code Online (Sandbox Code Playgroud)

Joh*_*n H 36

如果您还没有在剃刀代码块中,则只需要在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>
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的重要部分是@:.它是一个简称<text></text>,用于强制剃刀引擎渲染文本.

另一件事,HTML标准指定a标签只能包含内联元素,而现在,你在一个div内部放置一个块级元素a.