如何使用ajax将字符串数组传递给控制器​​?

时间:2016-10-28 07:11:23

标签: javascript c# ajax

// something defined deleteArr and pass values to it
var postData = { deleteArr: deleteArr };
if(deleteArr.length > 0)
    {
        $.ajax({
            url: "@Url.Action("Delete", "ASZ01")",
            type: "POST",
            data: postData,
            contentType: "application/json; charset=utf-8",
            success: function (response) {
                alert("success.");
            },
            error: function (response) {
                alert(deleteArr[0]);
            }
        });
        deleteArr.length = 0;
    }

上面的代码是javascript。 在$ .ajax开始之前,我可以确认数组中的值在即时窗口中是正确的,但是当出现错误时:我得到了#34; undefined"。 以下是我在控制器中的功能

public void Delete(List<string> deleteArr)
    {
        service.Delete(deleteArr);
    }

第二个问题是我在该功能上设置了断点,但它无法停止。 我想也许我的ajax形式错了?

2 个答案:

答案 0 :(得分:0)

字符串化为JSON,添加dataType: 'json',然后传递并更正""

var postData = JSON.stringify({ deleteArr: deleteArr });

if(deleteArr.length > 0)
    {
        $.ajax({
            url: @Url.Action("Delete", "ASZ01"),
            type: "POST",
            data: postData,
            dataType: 'json'
            contentType: "application/json; charset=utf-8",
            success: function (response) {
                alert("success.");
            },
            error: function (response) {
                alert(deleteArr[0]);
            }
        });
        deleteArr.length = 0;
    }

答案 1 :(得分:0)

postData

的小改动
var postData = { deleteArr: JSON.stringify(deleteArr) };

想法是将您的数组数据转换为字符串格式,即:JSON并发布到服务器,MVC框架的默认模型绑定器将处理该部分,以便将它们转换为List<string>