IHttpActionResult Unterschied zwischen dem zurückgebenden Artikel, Json (Artikel) und Ok (Artikel)

9

In ASP.NET WebApi 2 unterscheidet sich Folgendes:

%Vor%     
Adam Szabo 20.04.2014, 22:15
quelle

2 Antworten

22

Dieser Code, der result zurückgibt, wird nicht kompiliert, da result nicht IHttpActionResult ...

implementiert %Vor%

Die Rückgabe von Json() gibt immer HTTP 200 und das Ergebnis im JSON-Format zurück, unabhängig davon, welches Format sich im Accept-Header der eingehenden Anfrage befindet.

%Vor%

Die Rückgabe von Ok() gibt HTTP 200 zurück, aber das Ergebnis wird basierend auf dem Format formatiert, das im Kopf der Accept-Anfrage angegeben wurde.

%Vor%     
Anthony Chu 21.04.2014, 06:59
quelle
1

Nur eine Ergänzung zu früheren Erklärungen:

Die Rückgabetypen für Ihre Funktionen sind: IHttpActionResult

Daher wird erwartet, dass die Methode eine IHttpActionResult zurückgibt, die eine Schnittstelle für HttpResponseMessage ist. Das HttpResponseMessage hat nützliche Eigenschaften wie Header, Inhalt und Statuscode.

Daher gibt Ok(result) einen HttpResponseMessage mit Ok Statuscode und den Inhalt zurück, was in diesem Fall das Ergebnis ist. In der Zwischenzeit konvertiert Json(result) das Objekt in das json-Format, auch Serialisierung genannt, und das wird als Inhalt in HttpResponseMessage platziert.

Das beste an einem Web-API mit ASP.NET ist, dass es einfache Wege schafft, die HTTP-Antworten durch Abstraktion zu übergeben. Das Schlimmste ist, dass man ein wenig Verständnis braucht, bevor man die relativ einfachen Methoden benutzt.

Hier gibt es mehr Infos dazu serilisation und json

Hier geht es mehr um Infos über IHttpActionResult

    
Anna 20.07.2016 22:10
quelle