MVC3 はデフォルトで JSON データをモデルにバインドできると思いました。
しかし、このコード
サーバ:
[HttpPost]
public ActionResult Save(IList<int> IDs)
{
return null;
}
クライアント:
$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});
働かないでください。どうして ??
MVC3 はデフォルトで JSON データをモデルにバインドできると思いました。
しかし、このコード
サーバ:
[HttpPost]
public ActionResult Save(IList<int> IDs)
{
return null;
}
クライアント:
$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});
働かないでください。どうして ??
データを application/json として送信する必要があります。
$.ajax({
type: 'post',
url: '/Users/Save'
data: JSON.stringify({'IDs' : [1, 2, 3]}),
contentType: 'application/json; charset=utf-8',
success: function() {
// ...
}
});
コードはを送信しますIDs[]=1&IDs[]=2&IDs[]=3
。
送信する必要がありますIDs=1&IDs=2&IDs=3
。
traditional:true
従来のパラメータシリアル化スタイルを使用するようにパラメータを設定します。
$.ajax({
url: '@Url.Action("Save", "Users")',
type: 'post',
data: {'IDs' : [1, 2, 3]},
traditional:true,
success: function() {
// ...
}
})
これは、私が少し前に遭遇した問題と同じかもしれません。この SO の質問を確認してくださいPost Array as JSON to MVC Controller