0

私は自分のモデルをシリアライズしています:

<script type="text/javascript">

    var Model = '@Model.ToJson()';

</script>

ToJson は拡張メソッドです。

public static string ToJson(this object obj)
{
    var serializer = new JavaScriptSerializer();
    var val = serializer.Serialize(obj);
    return val;
}

今、次のようにして、他の JavaScript ファイルのモデルにアクセスしたいと思います。

var hello = Model.id;

問題は、引用符のために使用すると正しくシリアル化されないこと'@Model.ToJson()'です。

シリアル化されたオブジェクトは次のようになります。

var Model = "{ "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" }";

しかし、Model.id で id にアクセスするには、次のようにする必要があります。

var Model = { "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" };

引用符なしでかみそりの構文を入力するにはどうすればよいですか? asp.net 構文を使用すると、次のようになります。

var Model = <%=Model.ToJson() %>

かみそりで同じことを行うにはどうすればよいですか?ありがとう!

4

2 に答える 2

1

Razor はデフォルトで引用符をエスケープするため、 Html.Rawを使用する必要があります。

var Model = @Html.Raw(Model.ToJson());

それは次のようになります。

var Model = {"id":"whatever"};

これは有効な JavaScript です。

于 2013-09-12T21:02:04.323 に答える