2

obj私は次のように$.post()を介してmvcアクションに渡されるjavascriptオブジェクトを持っています:

var obj = {
    Items: [{ Text: "", Value: { Property1: "", Property2: "" },
            { Text: "", Value: { Property1: "", Property2: "" }]
};
$.post('MyAction', obj, function() {});

アクション署名は次のようになります。

public ActionResult MyAction(FormCollection collection)
{
}

からオブジェクトを作成できる必要がありFormCollectionますが、キーが次の形式であるという問題が発生しています。

"Items[0][Text]"
"Items[0][Value][Property1]"
"Items[0][Value][Property2]"
"Items[1][Text]"
"Items[1][Value][Property1]"
"Items[1][Value][Property2]"

与えられたから目的のC#オブジェクトを構築するためのクリーンな方法があるかどうか疑問に思っていますFormCollection。アクションメソッドのシグネチャを変更して、関心のあるオブジェクトのタイプを取り込むことができることは理解していますが、それ自体に問題がありました。

4

1 に答える 1

1

代わりにデータのjsonバージョンを送信するようにjavascript側を変更できる場合は、文字列を受け入れてコントローラーでjson逆シリアル化を自分で行うか、モデルバインダーを実行してそれを行うことができると思います。

于 2010-05-17T03:01:59.030 に答える