Search code examples
c#asp.net-web-apiasp.net-web-api2postmanasp.net-web-api-routing

Web Api HTTPPost not accepting int


I am trying to just pass in body a int and it does not work Why do I need to create a class with a property of type int ? (then it works)

WORKS

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

DO NOT WORK

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

Testing with Postman

http://localhost:13497/api/UpdateMainReversed

Body

{
   "mainId" : 1615
}

Solution

  • 1.Your [HttpPost] expects a int but from body you are passing a json object. you should pass json string like below. No need to mention parameter name

    enter image description here

    2.you should use [FromBody] as below

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

    this link explains it well

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