ASP.NET Core 6 MVC中POST请求FromBody参数绑定失败问题
ASP.NET Core 6 MVC中FromBody参数绑定为null的解决方法
问题根源
ASP.NET Core 中,[FromBody] 特性仅能作用于Action的一个参数。因为HTTP请求体的数据流是一次性读取的,无法同时将请求体内容绑定到多个独立的参数上,这就是你两个字符串参数始终为null的原因。
解决方案
创建一个与请求JSON结构匹配的模型类,将请求体内容绑定到该模型实例上:
- 定义数据模型类
public class RegisterModel { public string FirstName { get; set; } public string LastName { get; set; } }
- 修改控制器Action
将原来的两个独立参数替换为模型类参数,仅保留一个[FromBody]特性:
[HttpPost] [Consumes("application/json")] public string RegisterUser([FromBody] RegisterModel model) { return $"{model.FirstName} {model.LastName}"; }
说明
你的Ajax请求代码无需修改,它已经正确完成了以下操作:
- 将包含
FirstName和LastName的对象序列化为JSON字符串 - 设置了正确的
contentType: "application/json"请求头
内容的提问来源于stack exchange,提问作者Zala Krunal
相关产品推荐
相关产品推荐

