2011-06-29 21 views
2

私は私のweb.configファイルでこれを持っている:ASP.NETで指定されたstatusCodeを使用してカスタムエラーページにリダイレクトする方法はありますか?

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 
    <error statusCode="403" redirect="NoAccess.htm" /> 
    <error statusCode="404" redirect="FileNotFound.htm" /> 
<customErrors/> 

は、どのように私は私からstatusCode = 404とはNoAccess.htmに私をリダイレクトasp.netを教えてくれるか? Global.asaxののApplication_Errorで 私はすでにこのライン試してみました:

Response.StatusCode = 400 

をそれはまだGenericErrorPage.htmでデフォルトに私をリダイレクトします。

明示的にステータスコードを設定して、ASP.NETが私が望むカスタムエラーページにリダイレクトされるようにする方法はありますか?

答えて

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"); 
    }  
} 
のようなものを試してみてください
関連する問題