2010-11-22 10 views
0

私は現在、それぞれの.aspxを表示するために少しのロジックを実装したいプロジェクトに取り組んでいます。asp.netのセッションで閲覧されたページ数を追跡します

私の考えは、* .aspxを対象とするhttphandlerを使用することでした。ハンドラでは、印刷などのロジックを少しずつ行いました。これは、このセッションで訪れたxページ目です。

私のアイデアに問題があるか、私が気づいていないより適切な解決策があるかどうか不思議です。

私のソリューションを実装しようとしましたが、私は無限ループに陥ります。ハンドラでロジックを完成させた後、私は同じページにリダイレクトしますが、もちろん同じハンドラを呼び出します。ハンドラにアクセスせずに同じページを実行するリダイレクトまたは特定の方法でハンドラをバイパスする方法はありますか?

ありがとうございました! 〜

答えて

2

マスターページを使用していますか?その場合は、マスターページのロードイベントでセッション変数の数を増やし、その後にいつでもDBに表示または書き込みできます。あなたのハンドラがリダイレクトするべきではありません

+0

マスターページを使用していない場合は、Global.asax Application_BeginRequestイベントで同じことを行うことができます。 – bechbd

+0

+1は最もクリーンなソリューションです。 – NotMe

+0

あなたがいない場合は真ですが、このリクエストはとても簡単です。マスターページを使用している場合、それは本当に簡単です。 – Matt

0

...

はHttpModuleを作成し、要求パイプラインでこれを置きます。こうすることで、コードが実行され、必要な情報がページに反映されます。

また、Mattのアイデアをマスターページに入れることもできます。テキストがどこに行くかをより詳細に制御でき、実装が簡単です。

1

おそらくあなたはHttpModuleを意味すると思います。ハンドラはエンドポイントであり、表示するページはほとんどありません。

このようなカウンタをルートマスターページに追加することをお勧めします。実装が簡単で、パイプラインの複雑さがなく、出力制御をその背後にあるロジックとしてカプセル化することができます。

0

IHttpModuleでこれを行う必要があります。モジュールはリクエストごとに1回実行され、その目的はハンドラとは異なり、ページのレンダリングに関係しないものです。

関連する問題