我点击了“提交”按钮时调用的jQuery函数:
function SubmitForm() {
var idList = [];
var list = $('#TableAdminPortfolio .CheckBoxProjects');
list.each(function () {
var id = $(this).closest('td').children('.hiddenId').val(); // parseInt()
idList.push(id);
});
$.ajax({
url: $(this).href,
type: 'POST',
data: idList,
success: function (result) {alert('Successful');},
error: function (result) {alert('Error');}
});
}
我的控制器如下:
[Transaction]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(IEnumerable<int> projects)
{
...
}
参数(项目)始终为空。我已经逐步完成了我的jQuery代码检查它的每一步,并且肯定填充了idList。我也试过这样的$ ajax:
$.ajax({
url: $(this).href,
type: 'POST',
data: { projects : idList },
success: function (result) {alert('Successful');},
error: function (result) {alert('Error');}
});
结果仍然相同。有什么想法发生了什么?是的,我有理由做一个Ajax Post而不是Form Post。
TIA
注意: 我正在使用jQuery v1.6.4和ASP.NET MVC 2.0。
答案 0 :(得分:2)
尝试使用JSON.stringify
将数组转换为json$.ajax({
url: $(this).href,
type: 'POST',
dataType: "json",
data: JSON.stringify(idList),
traditional: true,
success: function (result) {alert('Successful');},
error: function (result) {alert('Error');}
});
答案 1 :(得分:0)
尝试:
var mylist='{"projects":'+ JSON.stringify(idList)+'}';
然后
data:mylist,