Asp.Net MVC中的404 Http错误处理程序(RC 5)
-
01-07-2019 - |
题
如果没有框架抛出异常500错误代码,我怎么能处理404错误?
解决方案
http:// jason。 whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx 给出以下解释:
添加通配符路由规则作为最终规则:
routes.MapRoute("Error",
"{*url}",
new { controller = "Error", action = "Http404" });
任何与其他规则不匹配的请求都会路由到Error控制器的Http404操作,您还需要配置它:
public ActionResult Http404(string url) {
Response.StatusCode = 404;
ViewData["url"] = url;
return View();
}
其他提示
如果请求与控制器匹配但与操作不匹配,您也可以在控制器中覆盖HandleUnknownAction。默认实现确实引发了404错误。
抛出新的HttpException(404,“未找到资源”);
使用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);
}
不隶属于 StackOverflow