2009-09-03 13 views
1

私たちはまだ.NET 1.1にあります。ワークフロー/ページフロー/ユーザーフロー管理をトラッキングする最適な方法 - ASP.NET

私は約15ページの小さなアプリケーションを持っています。ワークフローは手順1、手順2のように単純ではありませんが、非常にランダムです。ユーザーは手順1から手順5に、または非常にランダムにジャンプできます。ユーザーはジャンプできるだけでなく、いくつかのビジネスルールのために、それぞれのステップxにユーザーを配置する必要があります。

私が知りたいのは、これらの追跡を簡単にする方法です。私はステップ1の後にステップ3にユーザを送りたいと思って、ユーザがステップ7のURLを知っていればそこに行くことはできないはずです。私は彼がステップ3にリダイレクトされるべきであることを意味します。

意味がありますか?

私が念頭に置いて考えているのは、ユーザーの次のページを追跡するセッション変数を使用することでした。もっと良い方法がありますか?

+0

あなたがしたいところに行くことはできませんが、ちょっと迷惑ですが、あなたは同意しませんか? – PatrikAkerstrand

+2

まだ.NET 1.1?!?!あなたは私の同情を持っています! – JonnyD

+0

彼は私の同情を持っていません!彼は私のように1.1から2.0にアップグレードして彼の髪をすべて引き抜く必要はなかった! –

答えて

1

セッションは、私があなたの説明から集めることのできる正しいアプローチです。セッションは、このような一時的なデータをリクエスト間で追跡するためのものです。

+0

+1最も簡単な解決策は – David

0

フレームワークの新しいバージョンを使用していた場合は、ウィザードコントロールをお勧めします。

しかし、私もまだ1.1上にいたときと同じような状況でした。私がやったことは、基本的に私自身のウィザードコントロールを思いついたものでした。それはちょっとした "ハック"でしたが、当時私が思いつくのは最高でした。誰かがより良い提案をしてくれるかどうかは分かりません(これを達成するためのより良い、より醜い方法があると確信していますが)ここで私たちはそれをどのように扱ったのですか?

代わりに別のページに異なるステップを持つために、1ページの異なるASP:Panelコントロールに配置します。 PanelStep1、PanelStep2などの名前を付けました。

いずれにしても、現在のインデックスを隠しフォームフィールドで追跡し、その値に基づいて表示パネルを設定します。

この方法は醜いですが、ユーザーが次のステップページの上を移動することを禁止するという問題を解決します(ステップをすべて1ページにすることによって)また、現在のインデックスを制御することもできますインデックスの設定に使用する必要があるイベントのフィールド値をフォームフィールドに入力します)。 URLのインデックスなどを保持します。

また、収集されたすべての情報を1ページに表示できるという利点もあります。あるステップから別のステップに情報を渡しているのかどうか、あるいは各ページのデータベースの情報を少し更新するのかどうかは分かりませんが、一度にすべてをやりたいのであれば、これはオプションになります。

+0

私はこれを行うことを想像することはできません。想像15 aspxページコード+ 15ページコードの背後にあるコード+ピーターblumはaspxのコードを制御します。あなたが話している1つのページには、aspxの7000行とコードの7000行があります..そしてbtw ..それもサポートする;)..! –

+0

ええ、私は15ページでこれは悪い選択だと思います。セッションはおそらく少し簡単だろう。しかし、どの程度の複雑さがこのレベルの複雑さを最初に必要とするかについて私は興味があります – David

0

Pageクラスの新しいベースページを継承し、正しいワークフローステップを実行するためのコードを入れます(そこから呼び出すビジネスロジッククラスライブラリのほうがよい)。次に、それぞれのステップが通常の基本ページではなくこのページを継承するようにします。

関連する問題