2012-09-04 20 views
0

我認爲MVC3可以將JSON數據默認綁定到模型。[MVC3]無法綁定JSON數組

但是這個代碼

服務器:

[HttpPost] 
public ActionResult Save(IList<int> IDs) 
{ 
    return null; 
} 

客戶端:

$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {}); 

不起作用。爲什麼?

回答

1

您的代碼發送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() { 
     // ... 
    } 
}) 
+0

Thnaks很多。有用! – Jack128

0

您必須申請JSON.stringify

$.post('@Url.Action("Save", "Users")', JSON.stringify({'IDs' : [1, 2, 3]}), function() {}); 
2

您需要發送的數據,應用程序/ JSON:

$.ajax({ 
    type: 'post', 
    url: '/Users/Save' 
    data: JSON.stringify({'IDs' : [1, 2, 3]}), 
    contentType: 'application/json; charset=utf-8', 
    success: function() { 
     // ... 
    } 
}); 
+0

佐爾坦的代碼工作正常,並且不需要內容類型的設置。 – Jack128