我正在开发一个旨在为两个域提供服务的 MVC4 应用程序。我们的大部分内容将跨域共享,但有时我们需要根据请求来自哪个站点来呈现不同的标记(使用 Razor)。
理想情况下,我想要一种基于约定的方法,它允许我拥有这样的文件夹结构:
Views
+ Domain1
+ ControllerName
View1
View2
+ Domain2
+ ControllerName
View1
+ ControllerName
View1
View2
解析视图时,我想先检查特定于域的文件夹,然后再检查常规视图文件夹。
我的第一个想法是实现一个继承 RazorViewEngine 的自定义视图引擎,该引擎将根据请求域交换 ViewLocationFormats 字符串。不幸的是,所有这些东西都隐藏在 VirtualPathProviderEngine 中,无法被覆盖。