2016-07-03 7 views
1

Ich bin ein wenig verwirrt senden bestimmte Statuscodes in Antworten von Web-API-Controllern. Hier ist Beispiel für eine einfache Steuerung Methode:ASP.NET - Einstellung Statuscode in der Controller-Antwort

public IHttpActionResult GetDeliveryMethods() 
    { 
     if (AuthenticationControl) 
     {     
      return Ok(db.DeliveryMethods); 
     } 
     else 
      return StatusCode(HttpStatusCode.Unauthorized); 
    } 

Gut „AuthenticationControl“ stellt eine Prozedur Prüfung, wenn ein Client Daten vom Server erhalten können. Ganze Methode funktioniert gut, aber wenn ich zurückkomme, ist eine Antwort vom Serverstatuscode immer 200 OK. Ich verstehe nicht warum, diese Deklaration von Antworten und Statuscodes ist auch in der Haupt-Controller-Vorlage in VS.

Was muss ich tun, um meine Deklaration des Statuscodes als Antwort zu senden?

+0

Es scheint, wie Sie fragen, warum immer dieser Code zurückgibt 200. Haben Sie darüber nachgedacht, einen Haltepunkt setzen und bestätigt, dass es trifft tatsächlich die 'Rückkehr Statuscode()'? – CodeCaster

+0

Ja, aber wenn ich eine Antwort auf "BadRequest: oder" NotFound "einstelle, wird der Statuscode geändert. Das Problem könnte also die Deklaration der letzten Zeile im Code sein, also keine Änderung der Codenummer. – bares697

+0

Ich habe auch versucht, zuletzt zu ändern Zeile nur zu "Unauthorized()", aber keine Wirkung. – bares697

Antwort

0

Geben Sie HTTPResoponse anstelle Ihres aktuellen Rückgabetyps zurück.

Auf diese Weise können Sie HTTP-Statuscodes setzen

Verwandte Themen