![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
はじめまして。
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ランキング
-
画面遷移が不正ですと表示されます
-
HTTPリクエストヘッダーの設定...
-
【ASP.NET】ページ遷移してもGr...
-
aspからasp.netへの遷移(その...
-
アプリの不具合?
-
HTMLボタンの文字色を変え...
-
c# 文字列の最後から1文字削除...
-
Ctrlキーを押しながらのダブル...
-
aspxをhtmlに変換する方法について
-
Webページ上のボタン等の位置を...
-
SUBMITボタンを表示させないでS...
-
学会のプログラム編成に関して...
-
WebBrowserでログインボタンを...
-
PageLoadの後にJavascript実行...
-
DVDの中身が表示されません。
-
ASP.NET MVC 最初からあるログ...
-
エクセルVBAで画面の大きさを取...
-
セッション管理について(同時...
-
今更、VBAでRPA、キーボード操...
-
PWを入れると別のページに飛ん...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASPで画面間のパラメタ受け渡し
-
HTTPリクエストヘッダーの設定...
-
画面遷移が不正ですと表示されます
-
エクセルVBA 別のブックのユ...
-
【ASP.NET】ページ遷移してもGr...
-
VB.NET 画面遷移
-
オートマトンNFAからDFAへの変換
-
ASP.NET による画面遷移で質問...
-
スマホで、左右にスワイプして...
-
Access2013 VBA 複数の画面の遷移
-
WebBrowserのドラッグできるフ...
-
request.QueryStringについて
-
POSTだけして、ページの移動を...
-
C#でテキストボックスとスクロ...
-
Cookie認証 方法
-
Request Header の追加
-
JK-FFを用いた順序回路の作成方法
-
server.transferで別のサイトへ
-
セッション変数への値の代入方...
-
自動ページ遷移について
おすすめ情報