Freitag, 20. April 2012

ASP.NET MVC: Content bei 4xx Antworten zurückgeben

Wenn man in einer Action einen HTTP-Fehler generiert, dann setzt der IIS als Content immer seine Standardmeldung.

Beispiel:
public ActionResult MyAction()
{
    Response.StatusCode = 409; // Conflict
    return Content("A steht mit B im Konflikt!", "text/plain")
}

Die Antwort die man beim Abruf der Action kriegt ist nicht wie zu erwarten "A steht mit B im Konflikt!", sondern "Seite kann aufgrund eines Konfliktes nicht angezeigt werden", wobei die Sprache der Meldung abhängig Ländereinstellung des Servers ist.

Die Lösung: Response.TrySkipIisCustomErrors = true;
public ActionResult MyAction()
{
    Response.StatusCode = 409; // Conflict
    Response.TrySkipIisCustomErrors = true;
    return Content("A steht mit B im Konflikt!", "text/plain")
}

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.