AJAX将2D数组发送到Action方法错误-ASP.NET MVC



我想将2D数组从javascript文件发送到操作方法。我的JavaScript功能

function _tbdata() {
var dataarr = [];
for(var i = 0; i<svarr.length; i++)
{
    var trangthai = $("input[name='" + svarr[i] + "']:checked").val();
    var lydo = $("#" + svarr[i]).val();
    dataarr[i] = new Array(2);
    dataarr[i][0] = trangthai;
    dataarr[i][1] = lydo;
}
$.ajax({
    url: '/DiemDanh/testMethod',
    data: { info: JSON.stringify(dataarr ) },
    type: "POST",
    traditional:true,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        alert('running');
    },
    error: function (data, textStatus) { alert(textStatus); }
});
}

和我的控制器

[HttpPost]
    public ActionResult testMethod(List<List<string>> info)
    {
        return RedirectToAction("Index");
    }

当我在Chrome中调试时,我有错误

发布http://localhost:56602/diemdanh/testMethod 500(内部服务器 错误)

抱歉我的ennigsh不好,希望大家建议!

我认为您应该更改JavaScript。二维阵列sholud be [[]

我为您的代码写了一个示例。它可以正常工作。

function Test() {
        var dataarr = [[]];
        for (var i = 0; i < 1; i++) {
            dataarr[i][0] = "A" + i.toString();
            dataarr[i][1] = "B" + i.toString();
        }
        var model = JSON.stringify(dataarr);
        $.ajax({
            url: '/Home/testMethod',
            data: model,
            type: "POST",
            traditional: true,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) {
                alert('running');
            },
            error: function (data, textStatus) { alert(textStatus); }
        });
    }

像这样更改您的ajax。

$.ajax({
    url: '/DiemDanh/testMethod',
    data: { info: JSON.stringify(ngay) },
    type: "POST",
    traditional:true,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        alert('running');
    },
    error: function (data, textStatus) { alert(textStatus); }
});
}

用字符串多维数组更改您的方法参数,因为列表字符串参数无法正常工作,它将不接受2D数组

    [HttpPost]
    public ActionResult testMethod(string [][] info)
    {
        return RedirectToAction("Index");
    }

相关内容

最新更新