当存在嵌套的Razor语句时,无法使Razor语法正常工作

本文关键字:Razor 常工作 语法 工作 嵌套 存在 语句 | 更新日期: 2023-09-27 18:19:59

我在带有Razor引擎的MVC4 ASP.Net中有以下代码,但'tr'元素的嵌套if存在一些问题。

问题:如果变量'i'是偶数,如果变量'i'是奇数,那么发射字符串"pink"的正确方式是什么?我想使用Razor语法来实现这一点,而不是使用tr.的奇怪CSS样式

   @{
        int i = 0;
    }
    @foreach (Product p in Model)
    {
        i++;
        <tr style="background-color:@if(i%2==0){"pink"} else { "white"})">
            <td>@p.Id</td>
            <td style="text-align:left;">@p.Name</td>
            <td style="text-align:left;">@p.Description</td>
            <td>@p.Price</td>
            <td>@p.UnitsInStock</td>
        </tr>
    }

当存在嵌套的Razor语句时,无法使Razor语法正常工作

@(i % 2 == 0 ? "pink" : "white")
@{
  int i = 0;
  var bc = "white";
}
@foreach (Product p in Model)
{
  if (i % 2 == 0)
  {
    bc= "pink";
  }
  <tr style="background-color:@bc" ...>

}