Asp.net mvc MVC Razor中的Foreach循环计数器

Asp.net mvc MVC Razor中的Foreach循环计数器,asp.net-mvc,razor,asp.net-mvc-5,Asp.net Mvc,Razor,Asp.net Mvc 5,我试图实现的是将表上的一个交替行设置为不同的CSS样式 我的控制器返回一个简单列表,并通过ViewBag将其传递给视图 我的查看代码如下: @{ int _recordCount = 1; foreach (var _oEstimateDetails in ViewBag.EstimateDetailData) { if (_recordCount == 1) { <tr class="EstimateDeta

我试图实现的是将表上的一个交替行设置为不同的CSS样式

我的控制器返回一个简单列表,并通过ViewBag将其传递给视图

我的查看代码如下:

@{
    int _recordCount = 1;
    foreach (var _oEstimateDetails in ViewBag.EstimateDetailData)
    {
        if (_recordCount == 1)
        {
            <tr class="EstimateDetailDataRow">
        }

        if (_recordCount == 1)
        {
            </tr><tr class="EstimateDetailDataAlternateRow">
            _recordCount = 0;
        }
        </tbody>
        <td class="EstimateDetailData">
            @_oEstimateDetails.EstimateLineDescription
        </td>
        <td class="EstimateQuantityData">
            @_oEstimateDetails.EstimateLineQuantity
        </td>
        <td class="EstimateRateData">
            @_oEstimateDetails.EstimateLineRate
        </td>
        <td class="EstimateLineTotalData">
            @(_oEstimateDetails.EstimateLineQuantity * _oEstimateDetails.EstimateLineRate)
        </td>
        </tr>
        _recordCount = _recordCount + 1;
    }
}
@{
int _recordCount=1;
foreach(ViewBag.EstimateDetailData中的var_oEstimateDetails)
{
如果(_recordCount==1)
{
}
如果(_recordCount==1)
{
_记录计数=0;
}
@_oEstimateDetails.EstimateLineDescription
@_oEstimateDetails.EstimateLineQuantity
@_oEstimateDetails.EstimateLineRate
@(_oEstimateDetails.EstimateLineQuantity*_oEstimateDetails.EstimateLineRate)
_recordCount=_recordCount+1;
}
}
因为这是我第五次尝试弄明白这一点,我就要把我的头发拔出来了。任何帮助都将不胜感激。

假设
在编程代码之前就开始了,我想您已经提前结束了。这里是imo应该使用的代码片段:

<tbody>
@{    
    for(int i =0; i < ViewBag.EstimateDetailData.Count(); i++)
    {
        var _oEstimateDetails = ViewBag.EstimateDetailData.ElementAt(i);

        <tr class="@(i % 2 == 0 ? "EstimateDetailDataRow" : "EstimateDetailDataAlternateRow")">
        <td class="EstimateDetailData">
            @_oEstimateDetails.EstimateLineDescription
        </td>
        <td class="EstimateQuantityData">
            @_oEstimateDetails.EstimateLineQuantity
        </td>
        <td class="EstimateRateData">
            @_oEstimateDetails.EstimateLineRate
        </td>
        <td class="EstimateLineTotalData">
            @(_oEstimateDetails.EstimateLineQuantity * _oEstimateDetails.EstimateLineRate)
        </td>
        </tr>
    }
}
</tbody>

@{    
对于(int i=0;i
这方面的一个选项是jQuery

如果您已经在代码库中包含jQuery,请尝试:

这是别人(不是我)开发的代码

例如,请参见:


$(文档).ready(函数(){
$(“table>tbody tr:odd”).css(“背景色”,“#f7f7”);
})

您可以使用javascript和css实现这一点:IIRC将为您实现这一点,此外,您还可以使用纯CSS3实现这一点。(:第n个子选择器)也。。。那是命名标准。那是什么?@Mariusz-tbody标签在这个混乱之前的表的开头:)不知道为什么这么晚才有人投反对票,没有解释。截至2019年5月12日,仍有一次净追加投票。我不再那么在意我的声誉点,但这仍然有点令人困惑……我没有否决你的意见,但将jQuery称为一种“典型”的做类似事情的方式对我来说似乎是错误的。它需要客户端脚本执行加上一个完整的库,不尊重原始的服务器端方法(这更好),而且总体上比使用纯CSS(比如
:n个子(2n)
选择器)更复杂。希望这能有所帮助。我编辑这篇文章是为了说一个更通用的“一个选项是jQuery”。因此,它不再说“典型”。我得到了这个特定情况下的jQuery示例,所以我认为它是典型的,但我可以看到jQuery不一定是典型的。似乎有些代码库使用它,有些不。。。
 <script type="text/javascript">
   $(document).ready(function () {
        $("table > tbody tr:odd").css("background-color", "#F7F7F7");

   })
 </script>