Web Api HTTPPost不接受int

10 c# asp.net-web-api asp.net-web-api-routing asp.net-web-api2 postman

我试图传入body一个int它不起作用为什么我需要创建一个类型为int的属性的类?(然后它的工作原理)

作品

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified(DataAccess.Entities.RequestMain mainValues)
    {  ....}
Run Code Online (Sandbox Code Playgroud)

不工作

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified(int mainId)
    {  ....}
Run Code Online (Sandbox Code Playgroud)

用邮递员测试

HTTP://本地主机:13497/API/UpdateMainReversed

身体

{
   "mainId" : 1615
}
Run Code Online (Sandbox Code Playgroud)

小智 16

1.你的[HttpPost]期望一个int但是从你传递一个json对象的body.你应该像下面一样传递json字符串.无需提及参数名称

在此输入图像描述

2.你应该使用[FromBody]如下

[HttpPost]
    public void UpdateMainVerified([FromBody] int mainid)
    {

    }
Run Code Online (Sandbox Code Playgroud)

这个链接解释得很好

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api