如何将int数组从ajax发送到c#mvc?

如何将$ .ajax中的int数组发送到c#mvc?

$.ajax({ url: , type: "POST", data: JSON.stringify([1,2,3]), dataType: "json", contentType: 'application/json; charset=utf-8' }); 

并在行动中。

 public ActionResult ReceiveIntArray(int[] ints) { ... } 

mvc应该自动解析json。

看看这个问题。

从这个问题尝试解决方案:

在进行get调用之前将traditional属性设置为true。 即:

 jQuery.ajaxSettings.traditional = true $.get('/controller/MyAction', { vals: arrayOfValues }, function (data) { ... } 

最简单的方法是在GET请求中发送一个分隔(逗号,可能)整数的字符串列表作为参数,然后使用Sting.Split()在C#MVC接收器上解析它们。

所以,例如$.get("/path-to/receiver/", { myArray: myArray.toString() } );

然后,在服务器上,使用

string[] stringArray = Request.QueryString["myArray"].ToString().Split(',')

将值提取到字符串数组,然后Int32.TryParse最终得到一个int数组。

jQuery GET语法
JS Array toString()语法

我这样做的方式是使用简单的input:hidden元素

  

在JavaScript代码中,我将其作为字符串传递:

 $.ajax({ type: "POST", url: '/Controller/Method', data: { recipients: $("input[name=elements]").val() }, traditional: true, success: updateSelected }); 

最后我只是Split的元素:

 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Method(string elements) { IList selected = elements.Split(','); ... } 

试试这个解决方案

 var Array = [10, 20, 30]; $.ajax({ type: "Post", datatype: "Json", url: , data: JSON.stringify(Array), contentType: 'application/json; charset=utf-8', });