asp.net-mvc-3 – 偶数和奇数表行与Razor

我正在使用具有MVC 3的Razor视图引擎,我试图使偶数和奇数行在表中具有不同的类.

到目前为止我已经有了

@{ var odd = true; }
@foreach(var userLot in Model) {
    if (!odd) {
        <tr id="[email protected]" class="even">
    else
        <tr id="[email protected]" 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>

给出了文本标签没有匹配的打开标签错误.可爱.

如何写这个,以便剃须刀不会给出错误

请不要推荐JavaScript解决方案,我想在这里解决剃刀问题.

解决方法

这个怎么样:
@{ 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;
}

@(…)是一个有效且非常有用的语句.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....