Web Api HTTPPost 不接受 int

Web Api HTTPPost not accepting int

我试图只传入 body 一个 int 但它不起作用 为什么我需要创建一个 class 和 属性 类型的 int ? (然后就可以了)

作品

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

不工作

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified(int mainId)
    {  ....}

使用 Postman 进行测试

http://localhost:13497/api/UpdateMainReversed

正文

{
   "mainId" : 1615
}

设置FromBody属性。

To force Web API to read a simple type from the request body, add the [FromBody] attribute to the parameter.

详情Link

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified([FromBody] int mainId)
    {  ....}

1.Your [HttpPost] 需要一个 int,但是从正文中你传递了一个 json 对象。你应该像下面那样传递 json 字符串。无需提及参数名称

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

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

    }

这个link解释的很好

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