Подтвердить что ты не робот

Четные и нечетные ряды строк с Razor

Я использую механизм просмотра Razor с MVC 3, и я пытаюсь сделать четные и нечетные строки разными классами в таблице.

Пока у меня есть этот

@{ 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 открытия в текстовой директиве, но затем глупый механизм просмотра стонет вокруг закрывающих тэгов. Если я затем обертываю тэг закрытия в текстовой директиве, то глупый механизм просмотра стонет, что текстовая директива не имеет открывающего тега.

Чтобы быть понятным, этот

<text></ tr></text>

дает ошибку, что текстовый тег не имеет соответствующего открытого тега. Прекрасный.

Как написать это, чтобы Razor не выдавала ошибку?

Пожалуйста, не рекомендуйте решение JavaScript, я пытаюсь обойти здесь проблемы с Razor.

4b9b3361

Ответ 1

Как насчет этого:

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

@( ... ) является действительным и очень полезным утверждением.