使用MVC3 EditorFor模板交替HTML表行类

时间:2011-12-23 10:58:00

标签: asp.net-mvc-3 razor editorfor

我尽力搜索,但无济于事,希望这是一个简单的问题!

我在ViewModel对象中使用Html.EditorFor作为集合。

但我希望表的交替行具有交替的类(“奇数”,“偶数”)。我尝试使用我在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++;
}

如:

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

谢谢大家。

1 个答案:

答案 0 :(得分:3)

使用javascript / jquery不能完成所有这些操作,并且不能保持实际代码清洁吗?

你只是做

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

如果出于样式原因它是纯粹的,你也可以使用:nth-child(N)来使用CSS:

tr:nth-child(even) { ... }
tr:nth-child(odd) { ... }