发送到后端二维数组

Pav*_*vel 2 c# asp.net-mvc jquery

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

这是我的脚本代码:

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

这是我的控制器:

[HttpPost]
public ActionResult SaveSettings(List<List<string>> regions)
{}
Run Code Online (Sandbox Code Playgroud)

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

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

我希望得到你的帮助。

最好的问候,帕维尔

Kar*_*son 5

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

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

}
Run Code Online (Sandbox Code Playgroud)

然后在您的脚本中,您可以使用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);
     }
});
Run Code Online (Sandbox Code Playgroud)

注意:这需要包含JSON.js