我認爲MVC3可以將JSON數據默認綁定到模型。[MVC3]無法綁定JSON數組
但是這個代碼
服務器:
[HttpPost]
public ActionResult Save(IList<int> IDs)
{
return null;
}
客戶端:
$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});
不起作用。爲什麼?
我認爲MVC3可以將JSON數據默認綁定到模型。[MVC3]無法綁定JSON數組
但是這個代碼
服務器:
[HttpPost]
public ActionResult Save(IList<int> IDs)
{
return null;
}
客戶端:
$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});
不起作用。爲什麼?
您的代碼發送IDs[]=1&IDs[]=2&IDs[]=3
。
您需要寄IDs=1&IDs=2&IDs=3
。
設置traditional:true
參數使用param序列化的傳統風格。
$.ajax({
url: '@Url.Action("Save", "Users")',
type: 'post',
data: {'IDs' : [1, 2, 3]},
traditional:true,
success: function() {
// ...
}
})
這可能與我剛纔遇到的問題相同。看看這太問題Post Array as JSON to MVC Controller
您必須申請JSON.stringify
$.post('@Url.Action("Save", "Users")', JSON.stringify({'IDs' : [1, 2, 3]}), function() {});
您需要發送的數據,應用程序/ JSON:
$.ajax({
type: 'post',
url: '/Users/Save'
data: JSON.stringify({'IDs' : [1, 2, 3]}),
contentType: 'application/json; charset=utf-8',
success: function() {
// ...
}
});
佐爾坦的代碼工作正常,並且不需要內容類型的設置。 – Jack128
Thnaks很多。有用! – Jack128