2009-08-07 101 views
4

如何将数组发送到我的控制器上使用反伪造令牌的操作。Asp.net Mvc:jquery post数组+反伪造令牌

这是我的Jquery POSTDATA:

var postData = { '__RequestVerificationToken': $('input[name=__RequestVerificationToken]').val(), 'productIds': IDs }; 

这是我的Jquery帖子:

$.post("MyProducts/DeleteProduct" , postData, function(data) { }); 

这是我的行动:

public void DeleteProduct(List<int> productIds) 
    { 
     foreach (int i in productIds) 
     { 
      _repository.DeleteProduct(i, null); 
     }   
    } 

我也用一个对象来存储我反伪造令牌,我不知道如何使用postdata。

这是令牌对象:

var token = { '__RequestVerificationToken': $('input[name=__RequestVerificationToken]').val() }; 

亲切的问候

+0

可能是有用的... http://stackoverflow.com/questions/4074199/jquery-ajax-calls-and-the-html-antiforgerytoken/4074289 – JeremyWeir 2012-05-29 18:00:31

回答

3
var ids = [1,2]; 

var data = { 
__RequestVerificationToken : token, 
productIds : ids 
}; 

$.post(url, data, function() ... 

其中令牌是你提到的var

1

假设你在HTML所有的产品ID这将是更容易使用jqueryForm plugin

$("form").ajaxSubmit({url: "MyProducts/DeleteProduct", success: function(response) { 
    // Handle the response 
}}) 
+0

这将意味着我必须添加第二种形式,我的看法和我想第二个AntiForgeryToken。此外,这些ID是从表格行中提取的。这些ID是这样的:id =“productRow-1”,id =“productRow-2,... – Pickels 2009-08-07 05:12:36