如何扩展Phil Haack在这里提到的List模板razor委托示例,以便我可以提供备用行css类?
http://haacked.com/archive/2011/02/27/templated-razor-delegates.aspx
我想做类似的事情:
@comics.List(
@< tr class="@odd">
< td>@item.Title< /td>
< td>@item.Publisher< /td>
)
修改:我不需要javascript或css解决方案。我需要能够支持可能禁用javascript的旧浏览器和浏览器。
答案 0 :(得分:3)
如果您必须拥有服务器端解决方案,那么这样做会:
@{ var odd = false; }
@comics.List(
@<tr class="@((odd = !odd) ? "odd-row" : "")">
<td>@item.Title</td>
<td>@item.Publisher</td>
)
应该导致:
<tr class="odd-row">
<tr class="">
<tr class="odd-row">
(odd = !odd)
是一个布尔测试加上一个切换标志的 NOT 操作。
答案 1 :(得分:2)
我假设只使用CSS也可以解决你所陈述的问题:
tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
在修改
我不熟悉这个Razor
模板机制,感谢分享,无论如何我读了它以更好地理解它。
不幸的是,这似乎不可能。由于基础HelperResult
需要一个名为@item
的参数,因此无法添加更多参数。 This article清楚地解释了这个问题。
我想可以使用thistechnique编写一个特定的表格模板,并实现您想要的结果,但恕我直言foreach
路线更简单。