如何在Postman中发送多参数Post请求?C#控制器仅收默认值
解决ASP.NET Core控制器无法接收请求体多个参数的问题
问题原因
ASP.NET Core中,[FromBody]特性的参数只能声明一个——请求体的数据流仅能被读取一次,多个[FromBody]参数会导致后续参数无法完成绑定,最终只能拿到对应类型的默认值(int默认0,string默认null)。
解决方案
- 创建请求模型类
将需要传递的参数封装到一个DTO(数据传输对象)类中:
public class RegisterRequest { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
- 修改控制器方法
将控制器的Post方法改为接收这个模型类的实例:
using Microsoft.AspNetCore.Mvc; namespace Server.Controllers; [Route("api/[controller]")] public class RegisterController : Controller { [HttpPost] public IActionResult Post([FromBody] RegisterRequest request) { return Ok($"id : {request.Id}\nname : {request.Name}\nage : {request.Age}"); } }
- 调整Postman请求配置
使用标准JSON格式传递参数,同时确保请求头设置Content-Type: application/json:
{ "id": 10, "name": "sara", "age": 15 }
完成以上调整后,控制器即可正确接收请求体中的所有参数并返回预期结果。
内容的提问来源于stack exchange,提问作者AMB
相关产品推荐
相关产品推荐

