ASP.NET Core Web API加法POST接口参数异常及415错误排查
问题解决方案
核心问题分析
- 使用
[FromForm]时参数始终为0:接口声明从表单获取参数,但你通过Postman发送的是Raw JSON格式数据,两者绑定规则不匹配,导致模型绑定失败,int类型默认值为0,因此n1和n2始终返回0。 - 改为
[FromBody]后返回415错误:存在两个关键问题——JSON字段名与模型属性名不匹配,以及Postman未正确设置请求头的Content-Type。
具体修复步骤
步骤1:修正模型绑定方式
将接口的[FromForm]改为[FromBody],匹配你要接收的JSON请求体格式:
using Microsoft.AspNetCore.Mvc; namespace WebApi.Controllers { [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { [HttpPost("sum")] public ActionResult<int> Sum([FromBody] ToplamaModel model) { int sonuc = model.n1 + model.n2; return sonuc; } } public class ToplamaModel { public int n1 { get; set; } public int n2 { get; set; } } }
步骤2:对齐JSON字段与模型属性
你的模型属性是n1和n2,但发送的JSON用了Sayi1和Sayi2,字段名不匹配会导致绑定失败。修改请求的JSON内容为:
{ "n1": 5, "n2": 3 }
步骤3:设置正确的请求头
在Postman的请求头中添加Content-Type,确保服务器识别请求体格式:
- 切换到Postman的「Headers」标签
- 添加键:
Content-Type,值:application/json
可选:支持表单提交的场景
如果需要保留接收表单参数的能力,无需修改[FromForm],只需在Postman中切换到「Body」的form-data或x-www-form-urlencoded模式,添加n1和n2两个参数并填入对应数值即可。
内容的提问来源于stack exchange,提问作者Ozan Akkaşoğlu
相关产品推荐
相关产品推荐

