Я установил тему в web.config, что означает, что каждый клиент может загрузить разные представления для одного и того же интернет-магазина.
В Application_Start у меня есть:
RazorViewEngine viewEngine = new RazorViewEngine();
var theme = System.Configuration.ConfigurationManager.AppSettings["Themes"];
viewEngine.PartialViewLocationFormats =
viewEngine.ViewLocationFormats =
viewEngine.MasterLocationFormats =
new string[] {
"~/Assets/Views/{1}/{0}.cshtml",
"~/Assets/Views/Shared/{1}/{0}.cshtml"};
viewEngine.AreaMasterLocationFormats =
viewEngine.AreaPartialViewLocationFormats =
viewEngine.AreaViewLocationFormats =
new string[] {
"~/Assets/Areas/{2}/Views/{1}/{0}.cshtml",
"~/Assets/Areas/{2}/Views/Shared/{1}/{0}.cshtml"};
ViewEngines.Engines.Add(viewEngine);
Это работает, но как определить запасной вариант, если файл вида не найден?