【问题标题】:How to show a custom 404 page in ASP.NET-MVC? [duplicate]如何在 ASP.NET-MVC 中显示自定义 404 页面? [复制]
【发布时间】:2010-11-24 23:43:17
【问题描述】:

当我网站上的任何 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 路由工作?

【问题讨论】:

    标签: asp.net asp.net-mvc routing url-routing httpapplication


    【解决方案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));
      }
    }
    

    【讨论】:

    • 我不想在任何情况下重定向。我希望显示 MVC 视图。
    • 是的,只要你有一个带有适当方法的 ErrorController,它就会显示一个 MVC 视图。
    • 它会,但是通过重定向...
    • 你为什么不想做一个重定向?
    • 在 404 上重定向是一个可怕的想法。我和 usr 在那个。
    猜你喜欢
    • 2020-11-23
    • 2011-10-07
    • 1970-01-01
    • 2014-05-02
    • 2011-09-24
    • 2018-05-28
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多