Postman向ASP.NET发送数据无接收记录问题求助
问题排查与解决方案
针对你用Postman向ASP.NET应用发送JSON数组但后端接收不到数据的问题,可从以下核心方向逐一排查:
1. 规范请求配置
- Postman需将请求方式设为POST,不能用GET;
- 请求头必须添加
Content-Type: application/json,否则ASP.NET无法识别请求体中的JSON格式数据。
2. 修正后端Action的模型绑定逻辑
ASP.NET MVC中,复杂类型(如List<Driver>)默认不会从请求体绑定数据,需显式添加[FromBody]特性,同时标记Action为POST请求:
[HttpPost] public JsonResult UpdateDataDrivers([FromBody] List<Driver> oData) { try { foreach (var item in oData) { // 注意:需通过item访问Driver类的属性,原代码直接写tag/idcliente会编译报错 Console.WriteLine(item.Tag); Console.WriteLine(item.IdCliente); Console.WriteLine(item.IdCentroCostos); // 原代码中的departamento未在JSON中定义,需确认Driver类是否包含该属性 } mensajes.Status = "ok"; mensajes.StatusMensaje = "return data"; } catch (Exception e) { mensajes.Status = "Error"; mensajes.StatusMensaje = "Error at finish WS UpdateDataDrivers" + e.Message; } return Json(mensajes); }
3. 确保Driver类与JSON字段匹配
Driver类的属性名称、大小写、可访问性必须和JSON字段完全对应,且需包含无参构造函数:
public class Driver { // 模型绑定必需的无参构造函数 public Driver() {} // 属性名称需与JSON字段一致,若需大小写兼容可使用JsonProperty特性 public string Tag { get; set; } public int IdDriver { get; set; } public int IdCentroCostos { get; set; } public string IdCliente { get; set; } }
若需支持大小写不敏感的字段映射,可通过Newtonsoft.Json的
[JsonProperty("tag")]特性配置,例如:[JsonProperty("tag")] public string Tag { get; set; }
4. 校验Postman请求体
确认Postman的Body选项卡选择raw格式且类型为JSON,粘贴的JSON内容无语法错误(你提供的JSON格式是合规的,可再次核对)。
额外提示
原代码中foreach循环直接使用tag、idcliente等变量会触发编译错误,必须通过item.属性名的方式访问集合内对象的属性。
内容的提问来源于stack exchange,提问作者Leonardo Carrasco Velazquez
相关产品推荐
相关产品推荐

