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 1 ではなく mod 2 にする必要があります。

于 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 に答える