HttpResponseオブジェクトを使ったページ遷移
HttpResponseクラスのRedirectメソッドを使ったページ遷移の方法を見てみましょう。PageオブジェクトのResponseプロパティでHttpResponseオブジェクトを取得できます。
■ 主なプロパティ
プロパティ名
|
概要
|
Cookies
|
応答のクッキーコレクションを取得する
|
HttpResponeの主なプロパティ
■ 主なメソッド
メソッド名
|
概要
|
Redirect
|
クライアントを引数で指定したURLにリダイレクトする
|
HttpResponeの主なプロパティ
ページを遷移するにはRedirectメソッドを使います。データをほかのフォームへ送信する際にURLに埋め込んで送ることができます。この方法をGET送信といいます。
例:
http://localhost/index.aspx?id=123&name=suzuki
受信するフォームでは、HttpRequestクラスを使用して情報を取り出します。PageオブジェクトのRequestプロパティでHttpRequestオブジェクト取得できます。
■ 主なプロパティ
プロパティ名
|
概要
|
Cookies
|
クライアントから送信されたクッキーのコレクションを取得する
|
QueryString
|
HTTPクエリ文字列変数のコレクションを取得する
|
HttpRequestの主なプロパティ
プロジェクトの種類 |
ASP.NET Webアプリケーション |
プロジェクト名 |
HttpResponseTest |
サンプルダウンロード
○ デザイン(index.aspx)
Webフォームを追加して、次のようにコントロールを配置してください。
コントロールの配置例
○ プログラム(index.aspx.vb)
次のように各イベントハンドラにプログラムを記述してください。
index.aspx.vb
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- 'ポストバックのときは処理をしない
- If Me.IsPostBack Then
- Return
- End If
- 'DropDownListを初期化
- Dim vehicle(2) As ListItem
- vehicle(0) = New ListItem("車", "Car")
- vehicle(1) = New ListItem("バス", "Bus")
- vehicle(2) = New ListItem("タクシー", "Taxi")
- Me.ddlVehicle.Items.AddRange(vehicle)
- 'CheckBoxListを初期化
- Dim fruits(1) As ListItem
- fruits(0) = New ListItem("メロン")
- fruits(1) = New ListItem("すいか")
- Me.chkFruits.Items.AddRange(fruits)
- End Sub
- Protected Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
- '送信のためのURLを作成
- Dim url As String = "receive.aspx?text=" + Me.txtMessage.Text
- url += "&vehicle=" + ddlVehicle.SelectedValue
- 'CheckBoxコントロールはチェックされた項目を調べる
- url += "&fruits="
- For Each li As ListItem In Me.chkFruits.Items
- If li.Selected Then
- url &= li.Value & ","
- End If
- Next
- '余分についたカンマを除去
- If url.EndsWith(",") Then
- url = url.Remove(url.LastIndexOf(","), 1)
- End If
- 'ページ遷移
- Me.Response.Redirect(url)
- End Sub
○ デザイン(receive.aspx)
Webフォーム(receive.aspx)を追加して、次のようにコントロールを配置してください。
コントロールの配置例
○ プログラム(receive.aspx.vb)
次のようにプログラムを記述してください。
index.aspx.vb
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- '受信した内容を表示
- Me.lblQueryString.Text = Me.ClientQueryString
- Me.lblMessage.Text = Me.Request("text")
- Me.lblVehicle.Text = Me.Request("vehicle")
- Me.lblFruits.Text = Me.Request("fruits")
- End Sub
○ 実行結果
index.aspxを実行してください。
実行結果
○ 解説
index.aspx.vbの11~15行目と、18~21行目は、それぞれのリストコントロールに項目を追加しています。今回は、ListItem配列に項目をあらかじめ準備して、リストコントロールのItemsコレクションのAddRangeメソッドの引数に渡しています。これにより、項目が設定されます。
26行目では、送信先のURLを作成しています。データを渡すためにURLにデータを追加します。Webページのファイル名の後に「?キー=値&キー=値」というようにセットします。
receive.aspxe.vbの6行目では、PageオブジェクトのQueryStringプロパティを参照して要求のあったURLにセットされたデータを表示しています。その中のデータを取得するには、HttpRequestオブジェクトのitemプロパティを使います。このプロパティはRequest(“キー名”)のようにアクセスできます。7~9行目では送信されたデータを表示しています。
前へ 次へ