Чередование классов строк таблицы HTML с использованием шаблона MVC3 EditorFor

Я гуглил, как мог, но безрезультатно, надеюсь, это простая проблема!

Я использую Html.EditorFor для коллекции в объекте ViewModel.

Но я хочу, чтобы чередующиеся строки таблицы имели чередующийся класс ("нечетный", "четный"). Я попытался использовать следующий метод, который я выбрал на SO, но его использование внутри шаблона редактора сбрасывает значение «счетчика», и оно делает все одинаковым.

@helper AlternativeBackgrounds(string style1, string style2)
{
    if (ViewBag.count == null)
    {
        ViewBag.count = 0;
    }
    <text>class=" @(ViewBag.count % 2 == 1 ? style1 : style2)" </text>
    ViewBag.count++;
}

as in:

<tbody>
    <tr @AlternativeBackgrounds("odd", "even")>
        <td style="width:200px;">

Возможно ли это через код?

Чего я хочу достичь:

<tbody>
     @Html.EditorFor(x => x.SomeCollection)               
</tbody>

Шаблон редактора

@model = SomeModel
<tr class=??>
    <td style="width:200px;">
       @Html.LabelFor(x => x.SomeProperty)   
    </td>
    <td>
       @Html.LabelFor(x => x.SomeProperty)
    </td>
    ... etc

</tr>

Спасибо всем.


person M05Pr1mty    schedule 23.12.2011    source источник


Ответы (1)


Вместо того, чтобы делать все это, разве вы не можете сделать это с помощью javascript/jquery и сохранить свой фактический код чище?

ты бы просто сделал

$(document).ready(function() {
  $('.myTable tr:odd').addClass('oddRow');
});

если это чисто из соображений стиля, вы также можете использовать сделать это с помощью CSS, используя :nth-child(N ):

tr:nth-child(even) { ... }
tr:nth-child(odd) { ... }
person Ron Sijm    schedule 23.12.2011