通过Ajax传递数据但Controller始终接收空对象求助
Ajax传值Controller接收为空的排查与解决方法
以下是几个能定位并解决问题的排查方向:
严格匹配前后端属性名
后端接收模型的属性名必须和前端JSON的键名大小写完全一致(C#区分大小写),比如前端是FlightId,后端不能写成flightId或FlightID;同时要保证模型属性是public且带有getter、setter。给Action参数添加[FromBody]特性
由于你指定了contentType: "application/json"且用JSON.stringify序列化了数据,后端Action必须通过[FromBody]标记参数,告诉框架从请求体解析JSON:[HttpPost] public IActionResult AddTicket([FromBody] TicketBookingModel model) { // 业务逻辑处理 }校验数据类型一致性
日期类字段(如Birthday、DepartureTime)要确保前端传递的格式是后端可解析的(比如ISO标准格式2024-05-20T14:30:00),后端对应属性用DateTime或DateTimeOffset类型;数字类字段(如TransactionAmount)要确保前端传递的是数字而非字符串,避免类型绑定失败。确认请求Payload正确性
打开浏览器F12的Network面板,找到该POST请求,查看Payload内容,确认发送的JSON结构完整、值无缺失或格式错误——有时候前端变量未正确赋值,会导致传空值。排查跨域配置(可选)
若前后端端口不同,需确认后端已配置CORS允许前端域名访问,不过这个问题一般会直接触发请求错误,而非接收空对象,但也可作为兜底排查项。
内容的提问来源于stack exchange,提问作者Ngutahu
相关产品推荐
相关产品推荐

