ASP.NET初心者です。(長文になります)
ASP.NET(VS2005。VB)で、作成したWebアプリがあるのですが、
セッション→ViewStateについて、いまいちピンとこない部分がありまして、質問させていただきました。
A画面には、コード入力のテキストボックスと、ボタンが用意されています。
ボタン_Clickのイベントで、入力したコードをSession情報に登録した後、
別ウィンドウでB画面がポップアップ表示されるイメージです。(画面遷移ではないです)
※A画面のボタン_clickイベント内で、
「ScriptManager.RegisterClientScriptBlock(Me, Me.GetType, "popup", _
"window.open(B画面URL,'_blank','height=600~~~');", True)」で、Pageのオブジェクトに登録して、
B画面が起動されるイメージになると思います。
B画面では、Page_Loadイベント内の初回表示時「Not IsPostBack」のときだけ、
A画面で設定したSession情報を変数に設定した後、Session情報をクリアし、
変数に入れた情報をViewStateに登録して[ViewState(コード) = 変数に設定したコード]、
変数のコードを表示させています。
また、B画面は、自動で閉じるようにしたいのでTimerを使っています。
Timer_Tickイベントで、ViewStateに登録したコード取得して、値をDBに登録して、
B画面を閉じる、というのが一連の流れです。
ちなみに、A画面についてはB画面起動後、コード部分はクリアして、常駐しているイメージとなります。
そこで、気になるところが、
A画面でコード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って
コード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って・・・というように、
A画面から、何度も繰り返してB画面を起動させたとき、
A画面で設定したSession情報の内容で、B画面のTimer_Tickで、正しく登録されるのか、というところです。
ViewStateについて調べたところ、ページ単位で値を保持してくれる(違うページ間では共有しない)みたいなので、
ViewStateのクリアをしない限り&B画面を閉じない限り、値はそれぞれの画面で保持できているはず。
B画面の1つ目((1)とします)はコードが111の情報、2つ目((2))は222、3つ目((3))は333の情報を、
B画面それぞれのPage_Load時にViewStateに登録しておけば、
B画面(1)のTimer_Tickで111、B画面(2)のTimer_Tickで222、B画面(3)のTimer_Tickで333がそれぞれ登録できると思っています。
このように連続で行うような画面操作で、
A画面で設定したSession情報が上書きされたりする(111が222になってしまうなど)可能性は、あるのでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> B画面では、Page_Loadイベント内の初回表示時「Not IsPostBack」のときだけ、
> A画面で設定したSession情報を変数に設定した後、Session情報をクリアし、
B画面でF5キーを押すだけで破綻しているのでは?
私見では、
画面間のデータ渡しでSessionは使うな。
QueryStringがお勧め(簡単に書き換えられるのでチェックは必須)
回答ありがとうございます。
F5キーにつきましては、
システム開発時の仕様というか、規約というか、
運用で、ファンクションキーは使用しない決まりになっていまして、
F5キー押下以降は、例外をスローするようになっています。
(基本、マウス操作のみで、画面再読み込みボタンの押下もNG)
QueryStringについても、書き換えられてしまったら困る、
という要望もあり、NGでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- ポイントサービス・マイル ポンタポイントの登録の仕方を教えてください 1 2023/01/19 22:56
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- Outlook(アウトルック) PCで登録途中の画面から認証コードを確認する方法を教えてください。 3 2022/09/29 06:11
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- InternetExplorer(IE) お気に入りの「一覧」の表示 2 2022/11/21 13:59
- その他(スマートフォン・携帯電話・VR) スマホの2段認証の方法について教えて下さい 10 2023/01/16 10:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
ブラウザアドレスバーからのURL...
-
C言語で今まで表示していた画面...
-
JSPから出力されたHTML画面のcl...
-
ServletからHTMLページへの遷移...
-
変数名とDBカラム名の関係性に...
-
[戻る]やhistory.backでの遷移...
-
ServletからServletへの値渡し
-
Java Struts Validator
-
検索画面→結果画面→検索画面と...
-
MFCプログラミング
-
Sessionがnullになりません。
-
Javascriptのhistory.back()が...
-
JAVAのセッション変数の上書き...
-
ASP.NET 画面遷移前の状態を保...
-
前画面の値を引き継ぎたい。
-
php の画面ボダンを押すと、サ...
-
strutsで、JSP→アクションクラ...
-
Processing初心者の学生です。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C# ログイン画面からメイン画面...
-
C言語で今まで表示していた画面...
-
画面遷移を行わずに同一ページ...
-
Java-jspの画面入力値保持について
-
プログラミングで例えばゲーム...
-
ASP.NET 画面遷移前の状態を保...
-
フロントエンドフレームワーク...
-
遷移元を判定したい!
-
画像の縦横比固定の計算方法。
-
FormのsubmitでFormの内容がnull
-
画面を隠す・消す方法を教えて...
-
HTMLのINPUTから画面表示
-
登録後、呼び出し元ページに戻...
-
ボタンを押したあとに画像を表...
-
Javascriptのhistory.back()が...
-
ServletからServletへの値渡し
-
セッション切れでのリクエスト...
-
アドレスバーに引数を表示させ...
-
system("cls")について
おすすめ情報