我有一个二维字符串数组(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)