Frage

Wie kann ich Handler 404 Fehler ohne Rahmen eine Ausnahme Fehlercode 500 zu werfen?

War es hilfreich?

Lösung

http: // jason. whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx gibt die folgende Erklärung:

Fügen Sie eine Wildcard Routing-Regel als letzte Regel:

routes.MapRoute("Error", 
                "{*url}", 
                new { controller = "Error", action = "Http404" });

Jede Anfrage, die nicht eine andere Regel überein Controller weitergeleitet wird an die Http404 Wirkung der Fehler, die Sie auch konfigurieren müssen:

public ActionResult Http404(string url) {
    Response.StatusCode = 404;
    ViewData["url"] = url;
    return View();
}

Andere Tipps

Sie können auch HandleUnknownAction innerhalb des Controllers in den Fällen außer Kraft setzen, wenn ein Antrag einen Controller übereinstimmt, aber eine Aktion nicht übereinstimmt. Die Standardimplementierung macht erhöhen, um einen 404-Fehler.

throw new Httpexception (404, "Resource Not Found");

Mit 3 MVC können Sie zurückkehren HttpNotFound (), um richtig einen 404 zurück.

Wie folgt aus:

public ActionResult Download(string fontName)
{
    FontCache.InitalizeFonts();

    fontName = HttpUtility.UrlDecode(fontName);

    var font = FontCache.GetFontByName(fontName);
    if (font == null)
        return HttpNotFound();

    return View(font);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top