Asp.Net MVC中的404 Http错误处理程序(RC 5)

MrB*_*yte 20 asp.net-mvc http http-status-code-404

如果没有框架抛出异常500错误代码,我怎么能处理404错误?

小智 21

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

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

routes.MapRoute("Error", 
                "{*url}", 
                new { controller = "Error", action = "Http404" });
Run Code Online (Sandbox Code Playgroud)

任何与其他规则不匹配的请求都会路由到Error控制器的Http404操作,您还需要配置它:

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

  • 仅仅是一个FYI,以上链接的帖子返回404(讽刺的是哦).新地址是:http://jason.whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx (16认同)
  • 这里唯一的问题是,与典型的/ {controller}/{action}/{id}路由匹配得非常多.为了解决这个问题,我明确定义了所有路由并将其删除. (4认同)
  • 不幸的是,链接不起作用.即使是http://jason.whitehorn.ws/也无法访问:| (4认同)
  • 链接是404,具有讽刺意味! (2认同)

Haa*_*ked 9

在请求与控制器匹配但与操作不匹配的情况下,您还可以在控制器中覆盖HandleUnknownAction.默认实现确实引发404错误.