[ASP.NET] Response.Redirect("") を実行すると例外エラーが発生する
2014/04/02
文書番号:20168
開発環境 :Visual Studio 2010
フレームワーク:.NET Framework 4.0
ソースコードでResponse.Redirect("") を実行してページ遷移をしようとすると例外エラーが発生します。
Response.Redirect("") がソースの最後であれば問題にはならないかもしれませんが、この後にも処理がある場合には困ります。
そうでなくても気持ちのいいものではありませんが・・・
調べてみたところ、以下のナレッジが見つかりました。
http://support.microsoft.com/default.aspx?scid=kb;ja;312629
【処理手順】
-
Response.Redirect("") の第2引数に「false」を指定するのが仕様のようです。
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Try
Response.Redirect("./About.aspx", False)
Catch ex As Exception
Label1.Text = ex.ToString
End Try
End Sub
-
Server.Transfer("") も同様に第2引数に「false」を指定するといいようです。
Server.Transfer("") では例外にキャッチされてしまいました。
この場合、ThreadAbortExceptionが発生するのでこれを別にキャッチして処理するといいかもしれません。
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Try
Server.Transfer("./About.aspx", False)
Catch ex As System.Threading.ThreadAbortException
'別途例外処理
Catch ex As Exception
Label1.Text = ex.ToString
End Try
End Sub
【参考情報】
PRB: Response.End、アクセス、または Server.Transfer を使用する場合は、ThreadAbortException が発生します。
http://support.microsoft.com/default.aspx?scid=kb;ja;312629
http://support.microsoft.com/default.aspx?scid=kb;ja;312629