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); }