- - PR -
ブラウザの更新ボタンと変数の引継ぎ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-11-26 11:08
いつもお世話になっております。ASP.NET(VB)暦1ヶ月の初心者です。
現在開発中のWebアプリで、ページの遷移時に以下のようにして 値の受け渡しを行っております。(Server.Transferとか 手もあるのですが、フレームとのからみがあるので) ****** Private Sub hoge_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hoge.Click Session("hoge") = "hoge" Response.Redirect("hoge2.aspx") End Sub ****** Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load viewstate("hoge2") = Cstr(Session("hoge")) Session.Remove("hoge") End Sub ****** 普通に画面遷移するにはまったく問題がないのですが、 「ブラウザで更新したらどうなるだろう」と思って 更新したら、Session("hoge")を破棄しているので 当然Nothingを戻され、後の処理でエラーが発生しました。 ここでPage_Load側を ****** If Not (Session("hoge") Is Nothing) Then viewstate("hoge2") = CStr(Session("hoge")) Session.Remove("hoge") End If ****** とすれば回避できるかと考えたのですが、今度は viewstate("hoge2")がNothingで、他の処理で エラーになってしまいます。 ポストバックしていないので当然といえば 当然だとは思いますが、更新前の値を引き継ぐには どうしたらいいのか行き詰まってしまいました。 Sessionに関して管理上「フォーム間の受け渡しが終了したら 必ず破棄する」ことを原則としたいので、Sessionを 破棄するコードは残しておきたいです。 ブラウザの更新ボタンクリック時にviewStateまたは その他の変数を引き継ぐには、どのようにしたら よいのでしょうか? |
1