0

以下のコードを参照してください。

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        Session("Test") = Request.QueryString("ID")
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Response.Write(Session("Test"))
    End Sub
End Class

次の手順に従ってください。

1) Default.aspx?id=1 に移動します
2) ボタンをクリックします
3) Default.aspx?id=2 に移動します
4) ボタンをクリックします
5) 戻るボタンを使用して手順 1 に戻ります
6) ボタンをクリックします

ステップ 6 の後の ID が 1 ではなく 2 になるシナリオはありますか? バグをトラップしようとしています。ボタンがASP.NETライフサイクルを開始し、ページの初期化が最初に実行されるため、それはあり得ないと思います。

4

1 に答える 1

0

いいえ。すべてのページリクエスト(クリックなど)で、ページはInitイベントを発生させます。これは、セッション変数にURL文字列からの値が割り当てられることを意味します。

ただし、発生する可能性があるのは(少なくとも、これを確認してください!)、ブラウザが以前のバージョンをキャッシュに保持しているため、[戻る]ボタンをクリックすると、間違った値が表示される可能性があります。ただし、更新後は期待どおりに機能するはずです。VSを使用してWebサイトをデバッグし、変数に格納されている実際の値を確認してください。

于 2012-10-27T13:30:14.160 に答える