2014-08-30 28 views
0

我在Razor引擎的MVC4 ASP.Net中有以下代码,但是对于'tr'元素嵌套if有一些问题。当嵌套的Razor语句存在时,无法使Razor语法工作

问题:如果变量'i'是偶数,并且如果变量'i'是奇数,那么发射字符串“pink”会发射字符串“white”会是什么?我想使用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> 
    } 

回答

1
@(i % 2 == 0 ? "pink" : "white") 
+0

它给了我一个错误。 – Sunil 2014-08-30 03:23:55

+1

我用一个等号代替了一个双等号。再试一次。 – 2014-08-30 03:25:01

+0

是的,它现在有效。谢谢。我可以在这里标记2个答案吗? – Sunil 2014-08-30 03:26:41

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

}

+0

这是有效的。谢谢。 – Sunil 2014-08-30 03:25:01