it-swarm.com.de

Web Api HTTPPost akzeptiert int nicht

Ich versuche, einfach body eine int zu übergeben, und es funktioniert nicht Warum muss ich eine Klasse mit einer Eigenschaft vom Typ int erstellen? (dann klappt es)

ARBEITET

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

NICHT ARBEITEN

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

Testen mit dem Postboten

http: // localhost: 13497/api/UpdateMainReversed

Karosserie 

{
   "mainId" : 1615
}
7
user6321478

1.Ihre [HttpPost] erwartet ein int, aber von body passieren Sie ein json-Objekt. Sie sollten Json String wie unten übergeben. Der Parametername muss nicht angegeben werden

 enter image description here

2.Sie sollten [FromBody] wie folgt verwenden 

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

    }

dieser Link erklärt es gut

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

13
Boopathy T

Setze FromBody Attribut. 

Fügen Sie dem Parameter das [FromBody]-Attribut hinzu, um die Web-API zu zwingen, einen einfachen Typ aus dem Anforderungstext zu lesen.

Für Details Link

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