tag net mvc asp asp.net-mvc http http-status-code-404

tag - Controlador de errores 404 Http en Asp.Net MVC(RC 5)



razor mvc (4)

Con MVC 3 puede devolver HttpNotFound () para devolver correctamente un 404.

Me gusta esto:

public ActionResult Download(string fontName) { FontCache.InitalizeFonts(); fontName = HttpUtility.UrlDecode(fontName); var font = FontCache.GetFontByName(fontName); if (font == null) return HttpNotFound(); return View(font); }

¿Cómo puedo manejar los errores de Handler 404 sin que el framework arroje un código de error de Exception 500?


También puede anular HandleUnknownAction dentro de su controlador en los casos en que una solicitud coincida con un controlador, pero no coincida con una acción. La implementación predeterminada genera un error 404.


lanzar nueva HttpException (404, "Recurso no encontrado");


http://jason.whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx da la siguiente explicación:

Agregue una regla de enrutamiento comodín como regla final:

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

Cualquier solicitud que no coincide con otra regla se enruta a la acción Http404 del controlador de errores, que también debe configurar:

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