2016-10-20 2 views
1

ich diese vordefinierten Antworten identifiziert:Welche Implementierungen von IHttpActionResult existieren

Ok - 200 
NotFound - 404 
Exception - 500 
Unauthorized - 401 
BadRequest - 400 
Conflict 
Redirect 
InvalidModelState 

Aber ich über den gesamten Bereich von Hilfsmethoden keine Dokumente nicht finden können, die dort exist..Are mehr?
Ich habe versucht, Microsoft-Website und fand nur these docs, aber sie sie nicht alle aufzählen ..

Hilfe

geschätzt
+0

Benötigen Sie eine Liste der möglichen HTTP-Return-Werte? Es gibt viele viele mehr als diese 5. Wie auch immer, solche Fragen sind hier auf SO off-topic. – HimBromBeere

+0

Es gibt auch 'ResponseMessageResult', was sehr praktisch ist, da Sie eine beliebige 'HttpResponseMessage' zurückgeben können. Es gibt eine Anzahl anderer in [System.Web.Http.Results] (https://msdn.microsoft.com/en-us/library/system.web.http.results (v = vs.118) .aspx). Beachten Sie, dass das, was Sie tatsächlich in Ihrer Frage aufgelistet haben, Methoden auf dem [ApiController] (https://msdn.microsoft.com/en-us/library/system.web.http.apicontroller (v = vs.118) .aspx) sind) Klasse, die 'IHttpActionResult' Implementierungen zurückgibt. –

+1

Ich denke, Marcus bedeutet, dass er nach vordefinierten Antworten sucht. Ich denke, das sind alles, was aus der Box kommt. Wenn Sie mehr wollen, können Sie immer vom IHttpActionResult erben. Ich tat dies für Forbidden Antwort –

Antwort

2

Wenn Sie ApiController und drücken Sie F12 wählen, werden Sie die Definition davon sehen. Dort sind alle Helfer aufgelistet.

enter image description here

Wenn du hier eine benutzerdefinierte erstellen möchten ein Beispiel:

public class ForbiddenResult : IHttpActionResult 
{ 
    private readonly HttpRequestMessage _request; 
    private readonly string _reason; 

    public ForbiddenResult(HttpRequestMessage request,string reason) 
    { 
     _request = request; 
     _reason = reason; 
    } 

    public ForbiddenResult(HttpRequestMessage request) 
    { 
     _request = request; 
     _reason = "Forbidden"; 
    } 

    public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken) 
    { 
     var response = _request.CreateResponse(HttpStatusCode.Forbidden,_reason); 
     return Task.FromResult(response); 
    } 
} 
+0

Danke Vasil. Natürlich sind sie unter ApiController Klasse .. Auch nette Implementierung Beispiel der Schnittstelle –

+0

@MarcusH Sie können keine Dokumentation in der WebApi-Implementierung finden, weil es 'HttpStatusCode' ist, die Sie bei [MSDN Dokument] finden können (https: // msdn .microsoft.com/de-us/library/system.net.httpstatuscode (v = vs.110) .aspx) –

Verwandte Themen