В настоящее время у меня есть приложение .net mvc3, которое отвечает за управление аналогичными представлениями в нескольких местах, которые также используют одни и те же контроллеры, например, site1/v1/views/index.cshtml
и site1/v2/views/index.cshtml
.
Способ, которым это обрабатывается, заключается в создании CustomControllerFactory, который наследуется от DefaultControllerFactory, и в методе CreateController очистите существующие механизмы представления и добавьте новый настраиваемый viewEngine, который задает форматы расположения представления, основанные на текущем URL.
Если пользователь приземляется на 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 не является поточно-ориентированным .
У кого-нибудь есть идеи о том, как я могу добиться того же результата, но другим способом?
заранее спасибо.