我正在使用Application_Error文件中的Global.asax方法捕获未处理的错误,这是我到目前为止的结果:

 protected void Application_Error(object sender, EventArgs e)
    {
        Exception exception = Server.GetLastError();
        Response.Clear();

        HttpException httpException = exception as HttpException;

        if(httpException != null)
        {
            string action;

            switch(httpException.GetHttpCode())
            {
                case 404:
                    action = "404";
                    break;
                case 500:
                    action = "500";
                    break;

                default:
                    action = "Other";
                    break;
            }

              Server.ClearError();

              Response.Redirect(String.Format("~/Error/?error=" + action + "&message=" + exception.Message));
        }
    }


但是我真的不喜欢将用户重定向到错误页面的想法,实际上我希望URL保持不变。

例如,当页面不存在时,不应将其重定向到URL中的路径,而应保留在同一页面上,但仍显示错误。

有谁知道如何做到这一点?

最佳答案

我的解决方案重定向非常像您的重定向,但是根据您的部署方式,我将通过在IIS中自定义错误页面来实现此目的。

Check Out this answered question

09-04 16:44