私は、ユーザーがサイトに入る前にユーザーの選択を知る必要があるシステムに取り組んでいます。これまで、選択肢はCookieに保存され、ページの読み込み時にJavaScriptによってチェックされていました。Cookieが存在しない場合は、ダイアログが表示され、ユーザーが選択を行います。
通常、ユーザーはアプリケーションのホームページにアクセスすることを期待していますが、ユーザーはアプリケーション内の任意のページへのURLを合法的にたどることができるため、選択をチェックするJavaScriptがすべてのページに存在します。
これにより問題が発生したため(ほとんどの場合、Cookieをクリアすることで修正されます)、データベースに選択肢を保存するように切り替えています。必要なのは、すべてのページ(MVCおよびWebフォーム)が選択が行われたことを確認し、選択が行われていない場合は、ダイアログを表示するか、選択できるページにリダイレクトするための適切な方法です。
私を悩ませている主なことは、MVCを使用してリダイレクトを発生させるには、を返す必要があることRedirectResult
です。これは、アクションからのみ実行できます。私はすべてのアクションにこのチェックに関するコードを持たせたくありません-それはベースコントローラーから可能であるはずの種類のことのようです(ベースページがを引き起こす可能性があるのと同じようにResponse.Redirect
。
すべてのページがデータベースのチェックを実行し、リダイレクトを発生させるか、ダイアログを表示するための良い方法を誰かが提案できますか?