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

时间:2020-03-06 14:29:20  来源:igfitidea点击:

如何在框架不抛出Exception 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" });

任何与另一个规则不匹配的请求都将路由到错误控制器的Http404操作,我们还需要对其进行配置:

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

如果请求确实与控制器匹配,但与动作不匹配,则还可以在控制器中覆盖HandleUnknownAction。默认实现确实会引发404错误。

抛出新的HttpException(404,"找不到资源");