我正在使用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