site1/v1/views/index.cshtml
私は現在、同じコントローラーを使用する複数の場所で同様のビューを管理する責任がある.netmvc3アプリケーションを持っていますsite1/v2/views/index.cshtml
。
これを処理する方法は、DefaultControllerFactoryを継承するCustomControllerFactoryを作成し、CreateControllerメソッドで、既存のビューエンジンをクリアし、現在のURLに基づいてビューの場所の形式を指定する新しいカスタムviewEngineを追加することです。
ユーザーがに到達した場合site1.com/v1/index.cshtml
、viewengineは次のビューの場所を指定します。
string versionDirectory = "v1";
ViewLocationFormats = new[]{ versionDirectory + "/Views/{0}.cshtml",
"/Views/{0}.cshtml",
"~/Shared/{0}.cshtml"
};
私が抱えている問題は、複数のユーザーがほぼ同時に異なるページにアクセスすると、すべてのユーザーに同じビューが表示されることです。
当初、これはキャッシングに関連していると思いましたがusecache = false
、カスタムviewEngineで明示的に設定した後、これはViewEnginesクラスがスレッドセーフではないことに関係しているようです。
同じ結果を別の方法で達成する方法について誰かが何か考えを持っていますか?
前もって感謝します。