
はじめまして。
ASP.NETのC#で開発を行っていますが、画面遷移で困っています・・・
A画面 ⇔ B画面 ⇔ C画面 と遷移する場合と、
A画面 ⇔ C画面 へ遷移する場合があり、戻り先が操作により異なります。
その場合、遷移元の情報はどのように保持していいのでしょうか?
現在は、ページ情報(各種コントロール情報・遷移元画面名)クラスを作り、Listに格納しセッションにて保持しています。
しかしなが、使い勝手が悪く(作り方が悪いのか・・・)困っています。
一般的にはこのような画面遷移のシステムを作る際はどのように作成するものなのでしょうか?宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>ASP.NETでのフレームワーク化
大したことではありません。
通常、汎用的でどうにでも作れるものを、一定の基準に沿うようにするだけです。
たとえば、データつきページ遷移なら、
基底クラス内メソッド PageTransfer("遷移先", (Dictionary<string.object>)持ち出しデータ) を定義、
遷移先ページで
Page_Load 以外に カスタムイベント Page_Transfered(object sender, TransferEventArgs e) を発生させるようにし、
e.Parameters["xxId"] (持ち込んだパラメータ値)
e.PreviousPage (前のページ)
などを参考にいろんなことをやり取りできるとか、そういった仕組みを作るだけです。
多少骨は折れますが、この程度なら3日見込めば大丈夫かと思います。
No.2
- 回答日時:
これらはページ間でデータ関連をもったページですよね?
ということは、データの持ち回りの際にはなにがしかの(セッションを利用した)ページ遷移を行っていると思います。おそらく各ページクラスが共通の基底Pageクラスを持ち、その中で実装してませんか?
その辺でこの遷移元をうまく利用するように、まとめてフレームワーク化したほうがよいかと思います。
私は過去にこれに近いことをしたことがあり、モーダルページ風の遷移(別Windowは開きません)を実装して戻り先制御を行いました。
その時は通常遷移、モーダル遷移、分岐遷移(ポップアップ)などに分けた記憶があります。
仮に今回の場合、モーダル遷移(来た道と帰る道が一緒)とするわけです。
実装は、セッション内にシングルトン実装されたスタック配列に、Open,Closeっぽい動きに合わせてPush,Popするわけです。
この場合、戻り先はスタックをPopすれば出てくるので・・・・
という説明でイメージつかめますか?
その時はフレームワーク化だったので、大きな作りですが、簡易にしてしまうのなら、BのページやAのページの遷移の際に、セッションに処理のモードを示す値でも入れて、Cで読みだしてください。
また、決してTransferメソッドを使って、PreviousPageをもとにしてはいけません。ページマネージャを利用したStateパターンのようなハブ&スポークな構造を利用しないと、
開発が進んでページ間のリレーションが増すごとにこの仕様は足を引っ張りますので。
この回答への補足
そうです、基底Pageクラスで実装しています。
だいたいのイメージはつかめたのですが、ASP.NETでのフレームワークと言うのがいまいち掴めてません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTだけして、ページの移動を...
-
ASP.NET による画面遷移で質問...
-
シングルサインオンの方法
-
アプリの不具合?
-
PageLoadの後にJavascript実行...
-
複数のヤフーIDの画面ウィンド...
-
ポストバック(__doPostback)へ...
-
ただいま勉強始めたての初心者...
-
dos画面が一瞬立ち上がる
-
asp.NET初心者です。「 ’Contex...
-
asp.net メッセージボックス表...
-
C# ListView内の検索機能について
-
アドレスバーのないウィンドウ...
-
getParameterで値が取得できず...
-
VBAでこれってどういう意味でし...
-
Page_Load時にボタンクリックイ...
-
ボタンリンクの文章を二行に・・・
-
AlertダイアログのOKボタンにつ...
-
target="_blank"でブラウザツー...
-
GridViewの行をダブルクリック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面遷移が不正ですと表示されます
-
HTTPリクエストヘッダーの設定...
-
ASPで画面間のパラメタ受け渡し
-
【ASP.NET】ページ遷移してもGr...
-
ASP.NET による画面遷移で質問...
-
自動ページ遷移について
-
VB.NET 画面遷移
-
Spreadのデータを別画面に引き渡す
-
オートマトンNFAからDFAへの変換
-
request.QueryStringについて
-
VB.NETのWebアプリケーション開...
-
C#でテキストボックスとスクロ...
-
ページ遷移方法について
-
シングルサインオンの方法
-
"ビジョ"というソフトウェア
-
スマホで、左右にスワイプして...
-
javascriptの質問です
-
アプリの不具合?
-
性の悩み「カテゴリ」について
-
違うサイトに移動した時にcooki...
おすすめ情報