C# 多维数组到MVC控制器
我有下面的控制器方法C# 多维数组到MVC控制器,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,我有下面的控制器方法 public ActionResult Export(string [,] data, string workbookName) { ExcelWorkbook workbook = new ExcelWorkbook(); workbook.AddRows(data); return new FileStreamResult(workbook.SaveSheet(), "application/vnd.ms
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
};
}
它接受二维数组并输出到工作表
到目前为止,当使用json数组从jquery发布时,我无法在数据参数中获取除null以外的任何内容。有人知道填充数据参数所需的json的正确格式吗。我在jQuery1.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);
}
});
您最好使用锯齿状数组,而不是多维数组。我更成功地使锯齿阵列工作。同样正确的是,数据类型是响应的类型。我能够使用json请求通过对数据使用
json.stringify
并指定application\json
的contentType来实现这一点:
控制器:
public ActionResult Test(string[][] fields, string workbookName)
{
var cr = new JsonResult();
cr.Data = fields;
return cr;
}
JS:
datatype
(我认为应该是datatype
)是响应的类型,而不是请求的类型。我认为这不会影响您,但是参数
变量在我看来很好。你确定你的意思不是让参数。数据为[“1”、“2”、“3”]
?什么是服务器端语言?服务器端语言是C#非常感谢John,这很有效。我改为锯齿阵列。硅
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);
}
});