我有一个二维字符串数组(12x5),我想将其从javascript函数传递给asp.net mvc控制器动作。使用IE中的开发人员工具,我知道该数组填充了我想要的内容,因此问题出在post函数之内或周围。

var dateArray = new Array();
//Populate Data

$.post("/Event/SetDateCalculationParameters", { dates: dateArray }, function () {
    //Stuff
});
}


这是MVC控制器动作

public ActionResult SetDateCalculationParameters(string[][] dates)
    {
        //Do stuff

        return Json(true);
    }


在控制器操作中,dates数组中有12个项目,但它们均为空。我已经在这个地方呆了几个小时而感到困惑。有没有更简单的方法可以做到这一点?还是我错过了什么?

最佳答案

您可以将它们作为JSON请求发送:

var dateArray = new Array();
dateArray[0] = [ 'foo', 'bar' ];
dateArray[1] = [ 'baz', 'bazinga' ];
// ... and so on

$.ajax({
    url: '@Url.Action("SetDateCalculationParameters", "Event")',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({ dates: dateArray }),
    success: function (result) {

    }
});


动作签名必须如下所示:

[HttpPost]
public ActionResult SetDateCalculationParameters(string[][] dates)

09-20 13:59