Server.Transfer无法呈现MVC视图

时间:2009-09-04 19:14:13

标签: asp.net asp.net-mvc http-status-code-404 application-error

在我的Application_Error事件处理程序中,我想为404呈现MVC-View。我不想因为SEO而重定向。

void Application_Error(...)
{
 if (serverException is HttpException && ((HttpException)serverException).GetHttpCode() == 404)
 {
  Server.Transfer("/error/404"); //*
 }
}

// *失败,因为它找不到磁盘上的路径。当然不是因为它应该由MVC处理。

如何从Application_Error渲染MVC-View?

我不想重定向。

1 个答案:

答案 0 :(得分:2)

只是不要使用Application_Error来处理404错误。定义捕获所有路径:

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

Http404控制器的Error操作将处理与其他路由不匹配的请求。