2014-09-28 19 views
0

如何發送一個包含ajax數組的對象到mvc中的httppost方法? 即時通訊在我的視圖中使用@ Html.AntiForgeryToken(),所以我需要使用ajax。 這裏是我的方法向mvc中的httppost方法發送一個包含ajax數組的對象

[HttpPost] 
[ValidateAntiForgeryToken()] 
public RedirectResult MultipleChangeSignupStatus(int[] id, string status) 
{ 
    some code here 
} 

,我有一個鏈接按鈕使用AJAX是這樣的:

var ids = [1 ,2, 3 ,4 ,5]; 
var token = $(':input:hidden[name*="RequestVerificationToken"]'); 
var data = {}; 
data['id'] = ids; 
data[token.attr('name')] = token.val(); 
data['status'] = 'accept'; 

$.ajax({ 
      url: '@Url.Action("MultipleChangeSignupStatus" , "Administrator")', 
      data: data, 
      type: 'POST', 
      success: function() { 

       } 
     }); 

但在控制器方法我得到ID爲空值。 狀態參數正確設置爲「接受」,雖然ID仍然是空

回答

0

添加參數traditional: true

$.ajax({ 
    url: '@Url.Action("MultipleChangeSignupStatus" , "Administrator")', 
    data: data, 
    type: 'POST', 
    traditional: true, 
    success: function() { 
    } 
}); 
1

試圖建立你的data對象是這樣的:

var ids = [1, 2, 3, 4, 5]; 

var token = $(':input:hidden[name*="RequestVerificationToken"]'); 
var data = { }; 
data['status'] = 'accept'; 
data[token.attr('name')] = token.val(); 

for (var i = 0; i < ids.length; i++) { 
    data['id[' + i + ']'] = ids[i]; 
} 
相關問題