ASP.NET Asp.Net MVC中的HTTPerror handling程序(RC 5)

如何处理404错误没有框架抛出exception500错误代码?

http://jason.whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx给出以下解释:;

添加通配符路由规则作为最终规则:

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

任何与其他规则不匹配的请求都将被路由到错误控制器的Http404操作,您还需要configuration该操作:

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

在请求与控制器匹配但不匹配动作的情况下,您也可以重写控制器中的HandleUnknownAction。 默认实现会引发404错误。

抛出新的HttpException(404,“Resource Not Found”);

使用MVC 3,您可以返回HttpNotFound()以正确返回404。

喜欢这个:

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