在.NET 6.0 WebAPI控制器GET请求中,Postman表单数据有效(WebAPI可以解析1),但原始数据无效(WebAPI接收0,而不是初始的1

ybzsozfc  于 2023-01-09  发布在  Postman
关注(0)|答案(1)|浏览(303)

我正在使用Postman测试我的.NET 6.0 WebAPI。
当我尝试处理表单数据请求时,WebAPI获取“parameter”

的原始值
当我尝试处理原始数据请求时,WebAPI获得“parameter”的默认值

这是我的.NET 6.0控制器的代码:

[Route("[controller]")]
public class SiteInfoController : Controller

{
    [HttpGet]
    [AllowAnonymous]
    [Route("Test")]
    public IActionResult Test(int parameter)
    {
        return Ok($"response: {parameter}");
    }
}

我添加了标题

Content-Type application/json
Accept application/json

但它没有帮助我请帮助我找到为什么表单数据工作(WebAPI可以解析1),但原始数据不(WebAPI接收0,而不是初始1)在.NET 6.0 WebAPI控制器GET请求的原因。

6ioyuze2

6ioyuze21#

你试图从请求的主体中读取一个对象,你必须定义这个对象并告诉框架从哪里读取它,而HttpGet不能有主体,你必须使用HttpPost或任何其他可以处理它的动词:

[Route("[controller]")]
public class SiteInfoController : Controller
{

    private sealed class MyParameter
    {
        public int Parameter { get; set; }
    }

    [HttpPost]
    [AllowAnonymous]
    [Route("Test")]
    public IActionResult Test([FromBody] MyParameter parameter)
    {
        return Ok($"response: {parameter.Parameter}");
    }
}

请确保将PostMan脚本更改为使用Post而不是Get

相关问题