我在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中的路径,而应该保留在同一页面上,但仍然会显示错误。
有谁知道怎么做?
答案 0 :(得分:0)
我的解决方案与您的解决方案重定向很多,但根据您的部署方式,我会通过在IIS中自定义错误页面来实现此目的。