0

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

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

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

如何从Application_Error呈现MVC-View?

我不想重定向。

回答

1

只是不要使用Application_Error来处理404错误。定义一个包罗万象的路线:

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

不匹配另一条路线的请求将被Error控制器的Http404行动来处理。

+0

我仍然在使用Webforms。我想要一个适用于_any_ 404的catch方法发送给客户端。 – usr 2009-09-05 11:18:34