2

我想使用 ajax 从脚本向控制器发送二维数组:

这是我的脚本的代码:

var regions = [["en", "fr"], ["ru"]];
$.ajax({
     type: "POST",
     traditional: true,
     url: $(this).attr("action"),
     data: {
         regions: regions
     },
     success: function(data) {
         $('#alertMessage').html(data);
     }
});

这是我的控制器:

[HttpPost]
public ActionResult SaveSettings(List<List<string>> regions)
{}

参数“regions”包含一个 Null 值。

我将不胜感激任何可以在控制器中提供数据的方法(欢迎任何格式:数组,json)

我希望能得到你的帮助。

最好的问候,帕维尔

4

1 回答 1

5

您需要更改操作方法的签名以使用 a string[][],如下所示:

[HttpPost]
public ActionResult SaveSettings(string[][] regions)
{

}

然后在您的脚本中,您可以使用stringify()JSON,如下所示:

var regions = [["en", "fr"], ["ru"]];
 $.ajax({
     type: "POST",
     traditional: true,
     contentType: "application/json; charset=UTF-8",
     url: $(this).attr("action"),
     data: {
         JSON.stringify({ regions: regions })
     },
     success: function(data) {
         $('#alertMessage').html(data);
     }
});

注意:这需要包含JSON.js

于 2013-09-12T17:02:32.730 回答