私は他の登録済みアフィリエイトサイトからの紹介を追跡する必要のあるサイトを持っています。これらのパートナーはそれぞれ、自分のサイト内の任意のページにリダイレクト、およびクエリ文字列などに自分のトラッキングパラメータを追加することができます:私は、サイトが最初の「紹介者」オブジェクトがされているかどうかを確認したい各リクエストにASP.net MVCがすべてのリクエストでクエリ文字列paramをチェックする
http://www.somesite.com/Home/About?i=ABCDEFG&t=65DCEFC2-2B73-429C-BA23-C824BFD01844
をセッションに格納されます。そうでない場合は、これらのパラメータの存在をチェックし、対応するIntroducerオブジェクトを保存します(または、提供されていない場合はデフォルトを使用します)。私は現在、選択されたコントローラ/アクションに実装されているだけですが、手動でコードを呼び出していますが、自動的に実行したいと思っています。カスタムルートハンドラがこれに最適でしょうか?コントローラーの基本クラスでOnActionExecutingをオーバーライドしてここで処理しますか?
あなたの要件は*ごと*要求された場合、あなたが持っているであろうから、それを処理するのに最適な場所は、カスタムルートハンドラになり、私には思えますそれ以外の場合はすべてのコントローラーの基本クラスを継承します。 –
@Robert Harvey - コントローラごとに基本クラスを継承することには欠点がありますか? – Macros
大変不便です。ベストプラクティスの観点からは、ルーティングの問題であり、ルーティングで処理する必要があります。 –