新卒から文系エンジニア→人材業界に転職した人のブログ

新卒から文系エンジニア→人材業界に転職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界へ。異業種×異職種の転職経験有り。

このエントリーをはてなブックマークに追加

【ASP.NET・C#】ページ遷移について -リダイレクト-

【今回の紹介】


ASP.NET開発において、ページ遷移を実現する方法、とりわけリダイレクトについて。



【内容】

ASP.NET開発において、ページ遷移を実現する方法はいくつかあるようだ。
基本的にASP,NETはなるべく同じページ内で処理を完結させるという思想があるため、
ページ遷移が多いWebアプリになると面倒かもしれない。


手法はいろいろあるで、、

参考:

uchukamen.com

www.atmarkit.co.jp

vbhadesukedonanika.azurewebsites.net


   
   
   
  



■リダイレクトってどんな仕組み

今回は、pjで多用されているリダイレクトに的を絞る
ウェブサイトにおけるリダイレクト(英:redirect)とは、ウェブサイトの閲覧において、
指定したウェブページから自動的に他のウェブページに転送されること。
URLリダイレクト(URL redirection)とも言われる。

具体的には、ASP,NETのサーバ側のボタン処理などを拾って画面遷移したい場合などに多用すると思う。




■標準的な流れ

標準的な流れとしては以下の流れだと思う。
 ①クライアントがサーバにページをGETメソッド要求
 ②ページで値やらなんやらを入力し、POST
 ③サーバ側でその入力値で分岐させ、遷移先のページリダイレクトするようにHTTP
  レスポンスのステータスコード302でクライアントに返す(ヘッダーに遷移先が書き込まれている)
 ④クライアントは、遷移先にGETメソッドでページをサーバへ要求する
 ⑤サーバは、クライアントにページ情報をレスポンスする

※リダイレクト先にパラメータを渡したい場合、クエリ文字列を使って渡すことが可能。
 POSTBACK後、一度クライアントに返しているため、実質上2回リクエストしている




■補足

 
Webアプリにおいて、リダイレクト時はクライアントのリクエストメソッドはGETになる。POSTにはできない
これは意外とやっかい。リダイレクト先にパラメータを渡したい場合には、GETメソッドになるため
URLの暗号化と複合化が必要になるだろう。


参考:hakobe932.hatenablog.com

.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }