私は「通常の」asp.netから来たので、MVCで少し(完全に)迷っています。
私が自分のasp.netプログラミングパターンでやっていたこと:
- 「ページ」とそのプロパティ (mypage.loadJquery、mypage.isLogged、mypage.Title、カスタム キャッシュ ロジックなど) を表すカスタム クラス オブジェクトが 1 つあります。
- このクラスは、各 ASHX ページの上で 1 回インスタンス化されます。次に、stringbuilder を操作して HTML を生成し、最後にブラウザーに出力します。
- ASHX ページに 1 つのリクエストしかないため、最終的な response.write を呼び出すときに、最初から最後までインスタンス化されたページ オブジェクトを使用できます。
今、私はMVCに行こうとしています。M/V/C モデルとルーティングの概念を「ある程度」理解しました。カスタムの「ページ」オブジェクトを保持したいのですが、ページのライフ サイクルが失われ、すべての呼び出しの先頭でページ オブジェクトを 1 回インスタンス化する方法がまったくわかりません。
すべてのモデル、コントローラー、ビュー、部分ビュー、htmlhelper で、このインスタンス化された ONCE 共有オブジェクトが必要です...
現時点では、MVC パターンが混乱を招く可能性があることを認識していますが、どうすれば自分のニーズを再現できますか?
(非常に具体的な例:すべてのリクエストで、ユーザーがCookieを介してログに記録されているかどうかを確認する必要があります。そうであれば、データベースを往復してユーザー情報を取得します。次に、実質的にすべてのモデル/コントローラー/ビューでこれらの情報が必要ですもちろん、毎回セキュリティ チェックとデータベース クエリに丸めたくはありません。mvc サイクル全体でこれらの情報を取得するにはどうすればよいですか?)