5

私のJavaScriptには、データを投稿するためのajaxというコードがあります。

$.ajax({
                url: '/Configurations/GetSelectedPageTranslation',
                type: 'POST',
                data: { inttype: $("#some").val(), objectType:{prop1: 'adsfa', prop2: 'asdf'}},
                success: function (result) {

                },
                error: function () {
                    alert('error');
                }
            });

コントローラーには、署名付きのメソッドがあります。

public JsonResult GetSelectedPageTranslation(int inttype, dynamic objectType)

私はinttypeを正しく持つことができます。ただし、objectTypeはnullにはなりませんが、objectType.prop1が好きな場合は、エラーがスローされます。javascriptでオブジェクトタイプをJSON.stringifyする場合、コントローラーのobjectTypeは文字列値になります。

次のような動的データ型を使用して、コントローラーのJSONデータに直接アクセスすることは可能でしょうか?objectType.prop1?

ありがとう

4

1 に答える 1

5

dynamicMVC3には、すぐに使用できるアクション引数のサポートはありません。

ただし、MVCは非常に拡張性があるため、この機能を追加できます。あなたがする必要があるIModelBinderのは、JSON逆シリアル化を実行して動的オブジェクトを構築できるカスタムを作成することです。

幸いなことに、この記事:MVC 3をもう少し…動的にすることはまったく同じ問題を扱っているので、始めるのに役立つサンプルコードと追加のリンクもそこにあります。

于 2012-07-23T07:42:28.193 に答える