我在web.config上有这个:
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
<customErrors/>
我如何告诉asp.net我的statusCode = 404并将我重定向到NoAccess.htm? 在Global.asax Application_Error上我已经尝试过这一行:
Response.StatusCode = 400
但它仍然将我重定向到默认值GenericErrorPage.htm。
有没有办法显式设置状态代码,以便ASP.NET将我重定向到我想要的自定义错误页面?
答案 0 :(得分:4)
如果您想从global.asax执行此操作,请尝试以下内容
protected void Application_Error(object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;
Exception ex = ctx.Server.GetLastError();
if (ex is HttpRequestValidationException)
{
ctx.Server.ClearError();
ctx.Response.Redirect("/validationError.htm");
}
else
{
ctx.Server.ClearError();
ctx.Response.Redirect("/NoAccess.htm");
}
}