您好我是MVC的新手,我正在尝试创建一个显示备用颜色行的表。像这样:
@foreach (var item in Model) {
var result = "";
var styleWhite = @"style=""background-color:white""";
var styleBlue = @"style=""background-color:blue""";
if ( (item.ID % 1) == 0 )
{ result = styleBlue; }
else
{ result = styleWhite; }
<tr @result >
<td>
@Html.DisplayFor(modelItem => item.CALLTYPE)
</td>
<td>
@Html.DisplayFor(modelItem => item.DESCRIPTION)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
然而双引号仍然像以下那样呈现为“&amp; quote”:
<tr style="background-color:blue" >
有没有办法抑制渲染并在标记内获得双引号(或单引号)? 谢谢你的帮助。
答案 0 :(得分:3)
Razor引擎默认情况下总是HtmlEncodes任何字符串。如果您需要覆盖此用途
@Html.Raw(result)
答案 1 :(得分:0)
找到答案:
<tr @Html.Raw(result) >
也应该是mod 2而不是1。
答案 2 :(得分:0)
改为使用单引号:
@foreach (var item in Model) {
var result = string.Empty;
var styleWhite = @"style='background-color:white'";
var styleBlue = @"style='background-color:blue'";
if ( (item.ID % 1) == 0 )
{ result = styleBlue; }
else
{ result = styleWhite; }
<tr @result >
<td>
@Html.DisplayFor(modelItem => item.CALLTYPE)
</td>
<td>
@Html.DisplayFor(modelItem => item.DESCRIPTION)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}