このようにjQueryでintのリストを送信すると:
$.ajax('@Url.Action("Execute")', {
type: 'POST',
data: {
pkList: [1,2,3]
}
});
次に、jQueryはpkListオブジェクトを変換し、次のように投稿で送信します。
pkList[]:1
pkList[]:2
pkList[]:3
サーバーがPHPの場合は問題ありませんが、Asp.NET MVC3を使用して、デフォルトのモデルバインダーを使用してこれらの値を取得しようとしています。
public ActionResult Execute(ICollection<int> pkList)
ただし、pkListは常にnullであり、デフォルトのモデルバインダーはそれをバインドできないようです。
これを正しく解決するにはどうすればよいですか?
追加された ソリューション
traditional
私は、jQueryでオプションを設定してDarinDimitrovのソリューションを使用しました。
$.ajax('@Url.Action("Execute")', {
type: 'POST',
traditional: true,
data: {
pkList: [1,2,3]
}
});
これで、jQueryは[]
パラメータにを追加しなくなり、次のように送信されます。
pkList:1
pkList:2
pkList:3
また、MVCのデフォルトモデルバインダーは値を正しく取得します。
これが誰かを助けることを願っています。