12

いくつかのオブジェクトのコレクション (リスト) を含むオブジェクトにバインドされた、厳密に型指定されたビューがあります。ページを生成するときにRazorがサーバー側で実行されることは知っていますが、Javascript変数はページが表示されるまでインスタンス化されません...しかし、モデル(ビューがバインドされていること)を変換することは何とか可能でしょうか) またはそのフィールドのいずれかを、後でそのデータを取得するために AJAX 呼び出しに頼ることなく、Razor の JSON に変換しますか?

あなたが知っている、何か...

var myJavascriptVariable = @Model.MyCollection

where@Model.MyCollectionはいくつかのオブジェクトのリストです。

ありがとう

4

2 に答える 2

37

json データを取得するには、次の構造を使用できます。

var jsData = @Html.Raw(Json.Encode(Model.MyCollection));
于 2012-11-16T15:37:08.533 に答える
4

これを試してみてください。これを使用すると、控えめなJavaScriptを使用できます。

HTML(Razor):

<script id="data" type="text/data-template">
@Html.Raw(Json.Encode(Model.MyCollection))
</script>

JS(これは外部ファイルで使用できます):

var
   jsonString = $('#data').html(),
   jsonValue = (new Function( "return( " + jsonString + " );" ))();

HTML:

<script id="data" type="text/data-template">
    { 'name': 'Pedro', 'Age': 33}
</script>
<div id="result"></div>

JS </ p>

var
   jsonString = $('#data').html(),
    jsonValue = (new Function( "return( " + jsonString + " );" ))();

$('#result').html(jsonValue.name);

</ p>

于 2012-11-16T15:56:25.767 に答える