我尝试使用下面的代码修改表格行的背景颜色。但是,我得到一个解析器错误,因为关闭的tr标签没有匹配的开口tr。我尝试使用@:而不是@ Html.Raw(...),但我得到了同样的错误。如果我在条件块之外键入tr标签,它会呈现一个标签并且表格加载正常(只是没有交替的背景颜色)。
<table>
<tr>
<th>Count</th>
<th>Username</th>
</tr>
@foreach (var item in Model)
{
i++;
if (i % 2 == 0){
@Html.Raw("<tr>");
}
else{
@Html.Raw("<tr style=\"background-color: #c9c9c9\">");
}
<td>@i.ToString()</td>
<td>
@Html.DisplayFor(modelItem => item.User)
</td>
</tr>
}
</table>
答案 0 :(得分:4)
你在这些地方不需要@Html.Raw
。
只需将标记保留为<tr>
更新...添加您的代码。
<table>
<tr>
<th>Count</th>
<th>Username</th>
</tr>
@foreach (var item in Model)
{
i++;
if (i % 2 == 0){
<tr>
}
else{
<tr style='background-color: #c9c9c9'>
}
<td>@i.ToString()</td>
<td>
@Html.DisplayFor(modelItem => item.User)
</td>
</tr>
}
</table>
答案 1 :(得分:2)
改为做。
<table>
<tr>
<th>Count</th>
<th>Username</th>
</tr>
@foreach (var item in Model)
{
string backColor;
i++;
if (i % 2 == 0) {
backColor = "whatever this color should be";
}
else {
backColor = "#c9c9c9";
}
<tr style="background-color: @backColor">
<td>@i.ToString()</td>
<td>
@Html.DisplayFor(modelItem => item.User)
</td>
</tr>
}
</table>