ASP.NET コードから JS レイヤーにデータをやり取りする最も簡単な方法の 1 つは、オブジェクトをシリアル化し、そのシリアル化を JS オブジェクトとしてビューにレンダリングすることです。次に例を示します。
// helper extension method
public static string ToJSON(this object o)
{
var oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return oSerializer.Serialize(o);
}
コントローラーの内部:
Viewbag.Foo = myObj.ToJSON();
次に、View 内で、シリアル化された obj をリテラル JavaScript として吐き出すだけです。
var json = @Html.Raw(Viewbag.Foo); // mix of Razor and JS here!
実行時にソースを表示すると、ビューのそのセクションに次のようなものが表示されます。
var json = {"prop1":true, "arrayItems":[{ "prop1": "dog" }, { "prop": "car" }]}