ASP.NET API接收请求体为null问题(Postman正常Angular调用异常)
ASP.NET API接收Angular请求体为null的排查方案
核心排查点及解决方法
显式指定请求体绑定特性
ASP.NET Core虽默认对复杂类型从请求体绑定,但显式添加[FromBody]可避免绑定源歧义。修改控制器方法参数:public async Task<IActionResult> Register([FromBody] LoginReqDto request)检查Angular请求的Content-Type
确保请求头包含Content-Type: application/json。Angular HttpClient传对象时通常自动设置,若手动构建请求需显式配置:import { HttpHeaders } from '@angular/common/http'; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.post('/api/user/register', yourUserData, { headers });验证LoginReqDto的配置
- 确认
LoginReqDto的属性为public,私有属性无法被模型绑定器读取。 - 处理属性名大小写差异:若Angular用驼峰式(如
email)、C#用帕斯卡式(如Email),需在ASP.NET Core中启用大小写不敏感绑定:// Program.cs中配置 builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; });
- 确认
核对请求Payload结构
在浏览器开发者工具的Network标签中查看Angular发送的Payload,确保其结构、属性名与LoginReqDto完全匹配,无遗漏或多余字段,对比Postman的请求格式确认差异。
内容的提问来源于stack exchange,提问作者Sakchham Sangroula
相关产品推荐
相关产品推荐

