Question

Comment puis-je gérer les erreurs 404 sans que la structure génère un code d'erreur Exception 500?

Était-ce utile?

La solution

http: // jason. whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx donne l'explication suivante:

Ajoutez une règle de routage générique en tant que règle finale:

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

Toute demande qui ne correspond pas à une autre règle est routée vers l'action Http404 du contrôleur d'erreur, que vous devez également configurer:

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

Autres conseils

Vous pouvez également remplacer HandleUnknownAction dans votre contrôleur dans les cas où une demande correspond à un contrôleur, mais ne correspond pas à une action. L’implémentation par défaut génère une erreur 404.

lancer la nouvelle HttpException (404, "Ressource non trouvée");

Avec MVC 3, vous pouvez renvoyer HttpNotFound () pour renvoyer correctement un 404.

Comme ceci:

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

    fontName = HttpUtility.UrlDecode(fontName);

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

    return View(font);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top