0

在我的 Application_Error 事件处理程序中,我想为 404 呈现 MVC 视图。由于 SEO,我不想重定向。

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

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

如何从 Application_Error 呈现 MVC 视图?

我不想重定向。

4

1 回答 1

2

只是不要使用 Application_Error 来处理 404 错误。定义一条catch all路线:

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

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

于 2009-09-04T19:18:38.110 回答