首页 > 解决方案 > 将二维数组从 ajax 传递到控制器 ASP.Net MVC

问题描述

我是这个 Asp.Net MVC 的新手。如何将二维数组从 ajax 请求传递到控制器。我将此数组传递给我的控制器中的参数,但它给了我一个空值。这是我的代码:

查看脚本

$("#UpdatePosition").click(function () {
var positions = [];
$('.updated').each(function () {
    positions.push([$(this).attr('data-index'), $(this).attr('data-position')]);
    $(this).removeClass('updated');
});

$.ajax({
    type: 'POST',
    cache: false,
    dataType: 'JSON',
    async: false,
    traditional: true,
    //contentType: 'application/json; charset=UTF-8',
    url: '@Url.Action("UpdateCategoryGroupPosition", "Admin")',
    data: { data: positions }, //Sample position data = [1,1], [2,2], [3,3]
        success: function (result) {
            if (result == true) {
                alert("sucess")
            }else{
                alert("failed")
            }

        }, error: function (xhr, status, error) {
            alert(error);
        }
    });
});

在控制器中

[HttpPost]
public JsonResult UpdateCategoryGroupPosition(string[][] data)
{
    var result = false;

    try
    {
        if (data!= null)
        {
            
            }
            result = true;
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }

    return Json(result, JsonRequestBehavior.AllowGet);
}

谢谢你帮助我。

标签: c#ajaxasp.net-mvc

解决方案


这是我刚刚运行的更新的javascript,它给了我正确的结果

$(document).ready(function () {
        var postions = [[1, 1], [2, 2],[3,3]];
        $.ajax({
            type: "GET",
            cache: false,
            dataType:"JSON",
            async:false,
            traditional:true,
            contentType: "application/json; charset=UTF-8",
            url: "/Home/UpdateCategoryGroupPosition",
            data: { data:postions },

            success: function (data) {
                $('#alertMessage').html(data);
            }
        });

    });

在此处输入图像描述


推荐阅读