asp.net mvc2上的jQuery ajax帖子

时间:2013-02-12 23:06:59

标签: javascript jquery asp.net-mvc json asp.net-mvc-2

我点击了“提交”按钮时调用的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。

2 个答案:

答案 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,