jQuery的ajax()、post()方法提交数组,参数[] 问题

在使用jQuery的$.ajax()或$.post()方法向后台提交包含数组的参数时,遇到数组命名问题,如`schGender[]`。高版本jQuery中,可以设置`traditional: true`属性来解决这个问题,确保参数按照预期的形式提交,例如:`gender: [0, 1]`。这将使数组参数以传统方式序列化,避免在Firefox的Firebug中查看到错误的提交格式。" 137110308,7337247,深度学习中的RNN时间序列预测详解,"['神经网络', '深度学习', '时间序列预测', 'LSTM', 'GRU']
摘要由CSDN通过智能技术生成

jQuery的ajax()、post()方法提交数组,参数[] 问题

 

当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收.

 

比如:

$.ajax({
   type: "POST",
   url: url,
   data:{ gender:[0,1] },
   dataType: "json",
   async:false
  });

 

这里有个查询性别的gender数组.

用火狐的firebug查看post数据的时候,如果jquery版本过高会发现gender按以下类型提交

schGender[] 1

schGender[] 0

 

也就是说它把数组里面的每个元素都当成了数组了. 这样传到后台就会报错了.

 

解决办法是换低版本的jquery,我这里换成1.3.2就没问题了(不推荐). 之后再查看POST数据就是:

schGender 1

schGender 0

 

最好的解决办法是添加一个属性

traditional:true

$.ajax({<

在.NET Core 6 MVC项目中使用jQuery发起ajax post请求并携带数组参数,可以按照以下步骤进行操作: 1. 创建一个视图,包含一个表单和一个提交按钮。 ```html <form id="myForm" method="post"> <input type="text" name="name" /> <input type="text" name="age" /> <input type="button" id="btnSubmit" value="提交" /> </form> ``` 2. 编写jQuery代码,使用`$.ajax`方法发起post请求,并携带数组参数。 ```javascript <script> $("#btnSubmit").click(function () { var data = { "names": ["Tom", "Jerry"], "ages": [12, 16] }; $.ajax({ type: "POST", url: "/Home/PostData", data: data, success: function (result) { console.log(result); } }); }); </script> ``` 3. 在控制器中创建一个接收post请求的方法,并使用`[FromBody]`特性将请求体中的数据绑定到C#对象上。 ```csharp [HttpPost] public IActionResult PostData([FromBody]MyViewModel myViewModel) { // 处理请求数据 return Json(new { success = true }); } public class MyViewModel { public string[] Names { get; set; } public int[] Ages { get; set; } } ``` 注意事项: - jQuery的`$.ajax`方法中,`data`参数可以直接使用JavaScript对象,jQuery会自动将其转换为适当的格式。 - 在控制器方法中,需要使用`[FromBody]`特性将请求体中的数据绑定到C#对象上。 - 在控制器方法中,可以返回Json数据,使用`Json`方法即可。 以上就是.NET Core 6 MVC项目中使用jQuery发起ajax post请求并携带数组参数方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕容屠苏

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值