ASP.NET Core MVC:AJAX请求数据无法被Controller接收问题求助
ASP.NET Core MVC API接收模型字段全null的解决方法
以下是几种常见原因及对应解决方案:
缺少
[FromBody]特性
API Action的复杂类型参数必须添加[FromBody]特性,告知框架从请求体中解析数据:[HttpPut] public IActionResult UpdateGroup([FromBody] GroupViewModel model) { // 业务逻辑实现 }请求
Content-Type错误
确保客户端请求的Content-Type设置为application/json,否则框架无法正确解析JSON格式的请求体。ViewModel属性无公共setter
检查GroupViewModel的属性是否包含公共setter,框架需要通过setter为属性赋值:// 错误示例(无setter) public class GroupViewModel { public int Id { get; } public string GroupName { get; } } // 正确示例 public class GroupViewModel { public int Id { get; set; } public string GroupName { get; set; } }属性名称/结构不匹配
确认客户端发送的JSON字段名与ViewModel的属性名拼写一致(默认大小写不敏感),同时检查嵌套结构是否对应。比如ViewModel包含嵌套对象时,客户端需发送对应层级的JSON结构。JSON序列化配置异常
检查项目中的JSON序列化配置,确保未禁用属性绑定或忽略目标字段:builder.Services.AddControllers() .AddJsonOptions(options => { // 启用大小写不敏感匹配 options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; // 若ViewModel使用字段而非属性,需开启字段包含 // options.JsonSerializerOptions.IncludeFields = true; });
内容的提问来源于stack exchange,提问作者Josué Ramírez
相关产品推荐
相关产品推荐

