Четные и нечетные строки таблицы с помощью Razor - PullRequest
12 голосов
/ 17 марта 2011

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

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

@{ 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>

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

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

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

1 Ответ

29 голосов
/ 17 марта 2011

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

@{ 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;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...