在CSHMTL页面中的带有Razor的FOR中嵌套IF

时间:2019-01-20 22:48:02

标签: c# razor

我有一个IF~ statement in a For循环in my。cshtml`文件。

这是我的代码:

@foreach (var pet in Model.petDetails)
                {
                    <div class="row">
                        some text
                    </div>

                    <!-- added for dw-131-->
                    if ((string)Session[StaticStrings.pathName] == "somthing")
                    {
                        <div class="row">
                            <div class="col-xs-6" style="text-align:right;">
                                sometext @pet.somevar day
                            </div>
                        </div>
                    }
                }

如果我在IF语句前面添加“ @”符号,则会出现错误。如果我不这样做,则IF语句本身会在屏幕上打印出来。正确的方法是什么?

2 个答案:

答案 0 :(得分:0)

将foreach打包在@{}块中:

`@{
    foreach (var pet in Model.petDetails)
                {
                    <div class="row">
                        some text
                    </div>

                    <!-- added for dw-131-->
                    if ((string)Session[StaticStrings.pathName] == "somthing")
                    {
                        <div class="row">
                            <div class="col-xs-6" style="text-align:right;">
                                sometext @pet.somevar day
                            </div>
                        </div>
                    }
                }
              }`

答案 1 :(得分:0)

您是否尝试正确使用 @:,例如:

  @for (int i = 0; i < Model.ProductViewModels.Count; i++)
  {            
       if (i % 2 == 0)
       {
           @:<div class="row">Row Title Text
       }

       <div class="col-md-4">
          <a href="/product?id=@Model.ProductViewModels[i].Id">@Model.ProductViewModels[i].Title - @Model.ProductViewModels[i].Isbn13
          <br />
          <img src="@Model.ProductViewModels[i].ImageUrl" />
          </a>
       </div>

       if (i % 2 == 0)
       {
            @:</div>
       }            
   }