如何将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', });
- 使用AngularJS的$ http POST请求将我的数据发布到服务器但失败并显示错误消息“Access-Control-Allow-Origin不允许”
- 如何让我的新注册设计forms为AJAXified?
- 是否可以灯箱许多图像,但只显示一个图像来激活它们?
- 使用AJAX / jQuery在textarea中显示PHP echo?
- 显示服务器响应中的错误消息
- 嵌套的Ajax问题。 如何调试/解决?
- 当出现用户/表单validation错误时,我应该向AJAX请求发送什么响应/状态代码?
- 修改getJSON以使用CORS
- 切换2个书签(或查看页面,并从书签加载另一个页面)将无法与jQuery History插件一起使用