如何将2D数组发布到.net mvc控制器

时间:2014-06-03 03:13:22

标签: jquery ajax arrays asp.net-mvc json

这是我在页面上的js代码:

var data = [
  ["Benz", "Kia", "Nissan", "Toyota", "Honda"],
  ["2008", 10, 11, 12, 13],
  ["2009", 20, 11, 14, 13],
  ["2010", 30, 15, 12, 13]
];

$.ajax({
     url: "/Home/SaveData",
     type: "POST",
     contentType: 'application/json',
     data:JSON.stringify({ data: data }),,
     dataType: 'json',
});

以下是我的mvc行动:

[HttpPost]
public string save(string[][] data)

发布了空值,但是,我尝试使用List< string>而不是string[][],将数组的保持字符串作为列表项(而不是列表项的行)收集。 / p>

如何在服务器端绑定这个2D数组?

2 个答案:

答案 0 :(得分:0)

在你的ajax中,不要做字符串化,只需尝试将数据作为数据,

$.ajax({
 url: "/Home/SaveData",
 type: "POST",
 contentType: 'application/json',
 data: { data: data },
 dataType: 'json',
});

如果要对其进行字符串化,则需要覆盖默认模型绑定参考this CustomModelBinder以覆盖模型绑定器。

答案 1 :(得分:0)

更改您的代码,如下所示

var data = [
 ["Benz", "Kia", "Nissan", "Toyota", "Honda"],
 ["2008", 10, 11, 12, 13],
 ["2009", 20, 11, 14, 13],
 ["2010", 30, 15, 12, 13]
 ];

$.ajax({
 url: "/Home/SaveData",
 type: "POST",
 contentType: 'application/json',
 data:{ data: data },
 dataType: 'json',
});

现在数据可以在服务器端绑定。