30

を使用してオブジェクトを JSON に変換していますJavaScriptSerializer。サーバー コードでこの JSON 出力を確認できます。

[{"UserId":1,"UserName":"Admin"}]

しかし、UIでは以下のようなものに変換されています

[{"UserId":1,"UserName":"Admin"}].

それらをエスケープする方法は"

4

3 に答える 3

69

Razor ビュー エンジンを使用している場合は、次のHtml.Rawメソッドを使用する必要があります。

<script type="text/javascript">
    var model = @Html.Raw(Json.Encode(Model));
</script>

Json.Encodeと同等で短いメソッドの使用法に注意してくださいnew JavaScriptSerializer().Serialize()

于 2012-10-10T14:23:32.280 に答える
22

どうしてそんなことをするのか?を返さないのはなぜJsonResultですか?

public ActionResult MyMethod()
{
    List<ListItem> list = new List<ListItem>() {
        new ListItem() { UserId = "1", UserName = "Admin" },
        new ListItem() { UserId = "2", UserName = "JohnDoe" },
        new ListItem() { UserId = "3", UserName = "JaneDoe" }};

    return this.Json(list);
}
于 2012-10-10T14:00:41.067 に答える
0

Darin Dimitrovの答えについてもう1つ。私の VS2012 では、セミコロンでコンパイル エラーが発生します。これは、JS 側のステートメントが実際には「var model = ;」であるためです。次のように Razor パーツをラップするために引用符のペアを使用する方法:

var model = "@Html.Raw(Json.Encode(Model))";

これにより、エラーは発生しません。

Json.Encode() は JavaScriptSerializer のラッパー関数のようです。後者の方が時間効率が良いかどうかはわかりません。

于 2013-07-01T23:44:45.587 に答える