ASP.NET Core 8 Web API无法接收application/json请求体问题求助
ASP.NET Core 8 Web API无法接收JSON请求体的排查与解决
核心问题
你的API方法参数未添加[FromBody]特性,ASP.NET Core默认不会自动从JSON请求体绑定复杂类型参数,导致LoginRequest始终无法被赋值。
修复方案
直接修改API方法,为参数添加[FromBody]特性:
[HttpPost] public HttpResponseMessage Login([FromBody] LoginRequest loginRequest) { // ... 原有业务逻辑 }
额外排查验证步骤
- 确认Postman请求的Content-Type严格设置为
application/json,避免误设为text/plain或其他类型 - 检查JSON请求体格式:字段名需与
LoginRequest类的属性名匹配(默认区分大小写,若需忽略可在Program.cs中配置):builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; }); - 验证请求体无语法错误,比如引号缺失、逗号使用不当等
- 可选:在方法内添加模型验证,快速定位绑定问题:
[HttpPost] public HttpResponseMessage Login([FromBody] LoginRequest loginRequest) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } // ... 原有业务逻辑 }
内容的提问来源于stack exchange,提问作者Manar Al-Zabadani
相关产品推荐
相关产品推荐

