多维数组到MVC控制器
本文关键字:MVC 控制器 数组 | 更新日期: 2023-09-27 17:52:38
我有以下控制器方法
public ActionResult Export(string [,] data, string workbookName)
{
ExcelWorkbook workbook = new ExcelWorkbook();
workbook.AddRows(data);
return new FileStreamResult(workbook.SaveSheet(), "application/vnd.ms-excel")
{
FileDownloadName = workbookName
};
}
它接受一个二维数组并输出到一个工作表。
到目前为止,我未能在数据参数中获得除null以外的任何东西,当从jquery发布json数组时。有人知道填充data参数所需的json的正确格式吗?我使用Jquery 1.7.2。
这是我的jquery
var arguments = {};
arguments.data = [["1"], ["2"], ["3"]];
arguments.workbookName = "test";
//Populate arrayOfValues
$.ajax({
type: "POST",
url: '/Excel/Export',
datatype: "json",
traditional: true,
data: arguments,
success: function (data) {
alert(data);
}
});
最好使用锯齿数组而不是多维数组。我更成功地让锯齿阵列工作。此外,Explosion pill是对的,dataType是响应的类型。我能够通过在数据上使用JSON.stringify
并指定application'json
的contentType来使用json请求来实现此工作:
控制器:
public ActionResult Test(string[][] fields, string workbookName)
{
var cr = new JsonResult();
cr.Data = fields;
return cr;
}
JS:
var arguments = {};
arguments.fields = new Array(3);
arguments.fields[0] = new Array(3);
arguments.fields[1] = new Array(3);
arguments.fields[2] = new Array(3);
arguments.fields[0][0] = "hello";
arguments.workbookName = "test";
//Populate arrayOfValues
$.ajax({
type: "POST",
url: '/Home/Test',
dataType: "json",
contentType: 'application/json',
traditional: true,
data: JSON.stringify(arguments),
success: function (data) {
alert(data);
}
});