Как перенаправить на пользовательскую страницу ошибки с указанным кодом состояния в ASP.NET? - PullRequest
2 голосов
/ 29 июня 2011

У меня есть это на моем 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 перенаправит меня на нужную страницу ошибки?

1 Ответ

4 голосов
/ 29 июня 2011

Если вы хотите сделать это из 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"); 
   }      
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...