2

嗨,我是 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>
}

然而,双引号一直呈现为“"e”,如下所示:

<tr style=&quot;background-color:blue&quot;  >

有没有办法抑制渲染并在标签内获取双引号(或单引号)?感谢您的任何帮助。

4

3 回答 3

3

Razor 引擎默认总是 HtmlEncodes 任何字符串。如果您需要覆盖此使用

@Html.Raw(result)
于 2012-12-08T06:20:40.190 回答
0

找到了答案:

<tr @Html.Raw(result)  >

也应该是 mod 2 而不是 1。

于 2012-12-08T06:23:07.500 回答
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>
}
于 2012-12-08T06:23:29.357 回答