2

当我网站上的任何 URL 为 404 时,我想显示一个使用 ASP.NET-MVC 呈现的自定义 404 页面。但是我不想使用通配符路由方法,因为这会禁用标准网络表单。我的代码目前如下所示:

if (serverException is HttpException && ((HttpException)serverException).GetHttpCode() == 404)
{
 //Server.Transfer("~/Test.aspx"); //1
 //Server.Transfer("~/error/gf54tvmdfguj85fghf/404"); //2
}

此代码在 App_Error 中

//1 确实有效。Test.aspx 是一个标准的网络表单

//2 不起作用,因为它是一个 asp.net-mvc 路由

如何使 MVC 路由工作?

4

1 回答 1

-1

您可以使用应用程序错误事件...像这样:

 protected void Application_Error(object sender, EventArgs e)
{
  //Check if it's a 404 error:
  Exception exception = Server.GetLastError();
  HttpException httpException = exception as HttpException;

  if(httpException.GetHttpCode() == 404) {
      //Redirect to the error route
     Response.Redirect(String.Format("~/Error/404/?message={0}", exception.Message));
  }
}
于 2009-09-02T14:59:41.583 回答