2つのドメインにサービスを提供するように設計されたMVC4アプリケーションに取り組んでいます。ほとんどのコンテンツはドメイン間で共有されますが、リクエストの送信元のサイトに応じて、(Razorを使用して)異なるマークアップをレンダリングする必要がある場合があります。
理想的には、次のようなフォルダ構造を持つことができるコンベンションベースのアプローチが必要です。
Views
+ Domain1
+ ControllerName
View1
View2
+ Domain2
+ ControllerName
View1
+ ControllerName
View1
View2
ビューを解決するときは、最初にドメイン固有のフォルダーを確認し、次に一般的なビューフォルダーを確認したいと思います。
私が最初に考えたのは、リクエストドメインに応じてViewLocationFormats文字列を交換するRazorViewEngineを継承するカスタムビューエンジンを実装することでした。残念ながら、これらすべてのものはVirtualPathProviderEngineに埋め込まれており、オーバーライドすることはできません。