JSON「コレクション」を MVC3 コントローラーに送信しようとしています。着信オブジェクトが配列の場合、以前はかなり簡単にこれを実行しましたが、この例では配列はありません (ネストされた {} が「配列」でない限り)。
FormCollection
、 、およびその他のさまざまなモデル構成も試しましたDictionary<string, FooBar[]>
が、常に null です。
ファンシーなjson-binder-thingが機能しない原因は何ですか?
ありがとう。
JSON オブジェクトの構築
function getJson() {
var foobars = {};
foobars["FooBar1"] = { "Foo": "baz1", "Bar": 1 };
foobars["FooBar2"] = { "Foo": "baz2", "Bar": 2 };
}
getJson() は、この Json オブジェクトを生成します
{
"FooBar1" :
{
"Foo":"baz1",
"Bar":1
},
"FooBar2" :
{
"Foo":"baz2",
"Bar":2
}
}
モデル
public class FooBarModel
{
public FooBar[] FooBars { get; set; }
}
public class FooBar
{
public string Foo { get; set; }
public int Bar { get; set; }
}
コントローラ
[HttpPost]
public void ParseFooBars(FooBarModel model)
{
//model is null
}
jQuery アヤックス
$.ajax({
url: "MyController/ParseFooBars",
data: JSON.stringify(getJson()),
type: "POST",
dataType: "json",
//contentType: "application/json; charset=utf-8",
contentType: "application/json",
success: function () {
},
error: function () {
}
});