Wenn eine angeforderte Ressource nicht vom Service-Layer gefunden wird, der null an den Web-API-Controller zurückgibt; Was ist der beste Weg, um eine HttpStatusCode.NotFound
-Antwort an den Client zu senden, ohne ihn hart im Controller zu codieren und zu überprüfen, ob er null ist?
Persönlich würde ich nur die Kontrollen in den Controllern nach Oppositional Kommentar tun, aber was Sie verlangen, ist völlig in Ordnung. Wenn Sie wiederum Action-Filter verwenden, die entweder per Controller angeschlossen sind (oder global registriert sind), könnten Sie etwas in diese Richtung tun:
Beispielmodell:
%Vor%Beispiel Controller:
%Vor%Der Filter:
%Vor%Ich stimme Mark zu, dass der ActionFilter der richtige Weg ist - kleine Aktionsmethoden sind ein guter Geruch.
HttpActionExecutedContext.Response
kann jedoch null
sein, wenn eine Ausnahme auftritt; und die NullObjectActionFilter-Klasse, die oben gezeigt wird, kann Fehler HTTP-Statuscodes verdecken. Sie suchen besser nach erfolgreichem Beenden und einem erfolgreichen HTTP-Code.
Hier ist ein Aktionsfilter, den ich verwende:
%Vor%Tags und Links asp.net-web-api asp.net-mvc-4