2011-01-16 4 views
1

を記述してください。
私は3つのプロパティで定義されたモデルクラスを持っており、このモデルをビューのjavascriptコードからアクセスしたいと思います。このコードは、これを行うには良い方法があれば、私は思っていた2007年からの記事に基づいているためAsp.Net MVCを使用して、JavaScriptを初めて使用するオブジェクトとして、モデル

<script> 
var model = <%= Model.ToJson() %> 
alert(model.Prop1); 
</script> 

は、私が見つけた最高のは、それは私がこのような何かを行うことができるようになるthis page ました。

ありがとうございます!

+0

私は、もしそこに疑いがあると思いますこのアプローチで真剣に何かが間違っていたなら、そこにはたくさんの選択肢があるはずです。私は実際には、ほとんどの人がモデル全体をクライアントのJavaScriptにプッシュする必要性を感じないと思っています。正直なことをしたいと思う理由を考えることができません。ここであなたの調査を推進しているのは、あなたの目的を学ぶことは面白いでしょう。 – Lazarus

+0

私のページのデータは、定期的にJSONからのリクエストに合わせてajaxで定期的に更新されますが、JSONをページ上に直接varとして持つことで初期データをJavascriptでレンダリングできると思ったので、 AJAXコールバックがページを埋めるのを待つ。 – pauloya

答えて

2

はい、これはこれを達成するための非常に良い方法です。 JavaScriptSerializerを使用してモデルをJSONオブジェクトにシリアライズし、適切なエスケープを確実にします。代替案として

あなたはAJAXを使用している場合は、直接コントローラのアクションがJSONを返すことができた:

public ActionResult Foo() 
{ 
    var model = FetchTheModel(); 
    return Json(model, JsonRequestBehavior.AllowGet); 
} 

をして、jqueryのは、このアクションを消費する使用:

$.getJSON('<%= Html.Action("Foo") %>', function(result) { 
    alert(result.Prop1); 
}); 
+1

downvoteの理由は何ですか? downvotingするときはコメントを残してください。 –

+0

私はdownvoteしませんでしたが、afaik JavascriptSerializerはdepricated、代わりにDataContractSerializerを使用する必要があります...私はC#の専門家ではありません –

+0

@Martin、JavaScriptSerializerは非推奨ではありません。私はあなたがこれをどこで読んだのかわかりません。今リリースされたばかりのASP.NET MVC 3フレームワークは、JSONを生成するためにこれを使用します。実際には、.NET 3.5では一時的に非推奨であり、.NET 3.5 SP1では未解決でした。使い方は全く問題ありません。 –

関連する問題