2009-05-27 18 views
0

jqueryを使用するASP.NET MVCサーバーアプリケーションとクライアントコードがあります。私はajaxを使用してクライアントからサーバーにオブジェクトを転送したいと思います。サーバー上では、基本的には検証してシリアル化しています。クライアントでは、ビジュアル表現を作成するためのUIコードと、いくつかのオブジェクトプロパティを管理するいくつかのコードがあります。.NETサーバーコードとJavaScriptクライアントコードの間で論理型を共有するにはどうすればよいですか?

私の質問はこれです:これらのオブジェクトを整列させるための最良の方法は何ですか?私の現在のアイデアは、私のコントローラアクションからJsonResultとしてラップされたオブジェクトを返すだけですが、私はクライアントでそれを使って作業を終えた後、オブジェクトをMVC世界に戻す最善の方法がわかりません。 JSON文字列を作成してコントローラアクションの文字列引数としてMVCに渡すだけで、JSONを.NETタイプに手動で展開する必要があります。 .NETの型への自動マッピングや、ここでのエラーを防ぐのに役立つ他の「便利な」メカニズム(たとえ私がその便利な仕組みを書いていなくても)を行う方法はありますか?

これはModelBinderのアイデアと非常によく似ていますが、jqueryを使用してJSONをサーバーにポストするのではなく、通常のフォームポストを使用することになります。 ModelBinderを何らかの方法で使用して、クライアント提供のJSONを.NET側のハッピーモデルタイプに変換できますか?

答えて

4

JSONを手動で.NETタイプに解凍する必要はありません。あなたのためにこれを行う様々なライブラリがあります。私は個人的にJSON.NETを好む。

var deserializedObject = JsonConvert.DeserializeObject<ObjectType>(json); 

あなただけの使用、サードパーティのライブラリに依存したくない場合は、MicrosoftのJavaScriptSerializer:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
var deserializedObject = serializer.Deserialize<ObjectType>(json); 

Microsoft's documentation for JavaScriptSerializer

あなたがしなければならないだろうすべては、このようなものです
関連する問題