ASP.NET MVCのRedirectメソッドを使ってリダイレクトをする方法
公開日時:
更新日時:

指定したアドレス(ページやファイル)にリダイレクトをしたい場合は、リダイレクトメソッドを活用することができます。ASP.NET MVCではページ間のデータのやり取りが頻繁におこなわれるため、ページ遷移の際にリダイレクト処理を行うことで、遷移エラー時に発生する不具合を回避することが可能です。
- PG
- リダイレクトメソッドって、どんな時に使うんですか?
- PL
- 主にページ間でのデータをやり取りする際のエラー回避のためですね。使い方などを見ていきましょうか。
Redirectメソッドでできること
ASP.NETなどで作成する多くのWebアプリケーションでは、ページ間でデータのやり取りが頻繁に行われます。ブラウザ操作で、前のページに戻るなど意図しないページ遷移の操作が行われた場合に、コードの記述の仕方によってはデータの整合が合わなくなるなど、思わぬエラーが発生してしまうこともあるでしょう。
リダイレクトは指定したページやファイルに直接遷移することができる操作です。上記のようなページ遷移に対しての操作を行うクッション処理として入れることにより、不正な操作によるデータ整合の不具合を回避することができます。
リダイレクトの実行例
以下のコードは、ASP.NET MVCで作成したWebアプリケーションで、ページ間でのデータをやり取りする際のクッション処理としてリダイレクトメソッドを使用した例です。表示されたページからブラウザバックで戻ろうとする場合に、不正なアクセスとみなして意図しないページにアクセスさせないようにできます。
redirectメソッドによるリダイレクト
1 2 3 |
<% Response.Redirect("redirect.asp") %> |
1 2 3 |
<% Response.Write("リダイレクトに成功") %> |
- PG
- リダイレクトメソッドって、地味なところで活躍するんですね。
- PL
- ブラウザバック自体の操作を禁止することはできませんからね。その場合に対処するのは、データの整合を守る上で重要ですよ。
データベースにアクセスするページ処理に必須
リダイレクトメソッドは、Webアプリケーション上でデータベースアクセスが行われる場合に起こりえる、不正なページ遷移に対処する際によく用いられます。GET-POSTでのやり取りの場合、ブラウザバックしてしまうとデータベース上で不整合が起きてしまうことも考えられます。そのような操作をさせないためにGET-Redirect-POSTの処理をすることで回避する手段が一般的です。