.NET5 MVC 使用AJAX POST数据到API时后端接收到的参数全为null如何解决
问题原因及解决方案
按出现概率从高到低排查:
- 最核心的问题是控制器Action方法的参数缺少
[FromBody]绑定特性
你发送的是content-type: application/json格式的POST请求,ASP.NET Core默认不会将请求体中的JSON数据绑定到复杂类型参数上,需要显式指定参数的数据源:[HttpPost] [Route("AddUpdateGenre")] public IActionResult AddUpdateGenre([FromBody] ManagementVM data) { doSthWithData(data); } - 如果添加
[FromBody]后依然绑定失败,检查控制器类是否添加了[ApiController]特性
标准的WebAPI控制器需要在类定义上标注[ApiController],同时继承ControllerBase,才会启用API专属的绑定规则、模型校验等逻辑:[ApiController] [Route("api/[controller]")] public class EventController : ControllerBase { // 你的Action方法 } - 额外排查点:
- 确认请求确实到达了当前Action,没有被路由规则、中间件拦截
- 确认浏览器开发者工具中请求的Payload里JSON格式正确,没有语法错误
- 如果你修改过系统默认的JSON序列化配置,确认没有开启严格大小写匹配,你当前JS中的键名和C#属性名大小写完全一致,不会触发这个问题
内容的提问来源于stack exchange,提问作者Dom
相关产品推荐
相关产品推荐

