画面遷移

画面遷移

基本的なWebアプリケーションでは切り替え先の画面をPOSTメソッドやGETメソッドを使ってHTMLの<form>タグのアクションオプションで 指定します

HTMLの場合
<form method="get" action="Default2.aspx">
aspの場合
<asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="送信" />

ASP.NETでは、ポストバック時に処理されるサーバ側のイベントハンドラで強制的に画面を切り替えることができます。
これは、Srver.Transferメソッドを使用します。

また、ブラウザ側でも画面の切り替えることが可能です。この場合、Response.Redirectメソッドを使用します。

ASP.NETにおけるページリダイレクト(サーバ側のイベントハンドラの処理で画面を切り替える)場合は、基本的にはServer.Transfer メソッドを使用のが一般的です。
Response.Redirectメソッドを使用した場合、画面遷移元のコントロール(Labelなど)を参照することができません。
Response.Redirectメソッドを使用するのは、別のサーバ用のページへ遷移する場合などに使用します。

Server.Transfer

使用方法
Server.Transfer(遷移先のURL)

実装例
Partial Class Default4
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        Server.Transfer("Default5.aspx")

    End Sub
End Class

遷移先の画面で遷移元の値を取得する場合はPreviousPage.FindControlを使用します。

遷移もとの値を取得
PreviousPage.FindControl(キー名)

実装例
Partial Class Default5
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Label1.Text = DirectCast(PreviousPage.FindControl("TextBox1"), TextBox).Text
    End Sub
End Class

Response.Redirect

Response.Redirectに関してはあまり使用しないと思われるため、実装方法だけ記述します。
使用方法
Response.Redirect(遷移先URL)