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
}
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
2.you should use [FromBody] as below
[HttpPost]
public void UpdateMainVerified([FromBody] int mainid)
{
}
this link explains it well
https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
Set FromBody
Attribute.
To force Web API to read a simple type from the request body, add the [FromBody]
attribute to the parameter.
For details Link
[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified([FromBody] int mainId)
{ ....}