如何将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', });