我正在使用具有MVC 3的Razor视图引擎,我试图使偶数和奇数行在表中具有不同的类.
到目前为止我已经有了
@{ var odd = true; } @foreach(var userLot in Model) { if (!odd) { <tr id="lot@userLot.Id" class="even"> else <tr id="lot@userLot.Id" class="odd"> } <td>@userLot.Id</td> <td>@userLot.Description</td> <td>@userLot.Carat</td> <td class="averageBid">@userLot.AverageBid</td> <td class="rank">@userLot.Rank</td> <td class="currentBid">@userLot.CurrentBid</td> <td style="width: 200px; height: 30px;" class="tdWithBidInput"><input type="text" style="display: none" /></td> </tr> @{ odd = !odd; } }
这是给我无尽的麻烦,愚蠢的视图引擎无法弄清楚什么是标记,什么是代码.我已经尝试将tr打开标签包装在文本指令中,但是愚蠢的视图引擎会关闭结束tr标签.如果然后将文本指令中的关闭tr标签包装在文本指令中,则愚蠢的视图引擎会呻吟文本指令没有打开的标签.
只是为了清楚,这个
<text></ tr></text>
如何写这个,以便剃须刀不会给出错误?
解决方法
这个怎么样:
@{ var odd = true; } @foreach(var userLot in Model) { <tr id="lot@(userLot.Id)" class="@(odd ? "odd": "even")"> <td>@userLot.Id</td> <td>@userLot.Description</td> <td>@userLot.Carat</td> <td class="averageBid">@userLot.AverageBid</td> <td class="rank">@userLot.Rank</td> <td class="currentBid">@userLot.CurrentBid</td> <td style="width: 200px; height: 30px;" class="tdWithBidInput"><input type="text" style="display: none" /></td> </tr> odd = !odd; }
@(…)是一个有效且非常有用的语句.