プロジェクトを 4 つの Web プロジェクトに分割する理由が、顧客の見解が異なることである場合は、次のことを試してください。
1 つの webproject を持ち、異なるビューにサブフォルダーを使用します。
- Views/Home/About.aspx (一致するサブフォルダーが見つからない場合に使用)
- Views/Home/Customer1/About.aspx
- Views/Home/Customer2/About.aspx
レンダリングするビューを決定するカスタム ビュー エンジンを使用できます。Web の各インストールには、web.config で定義された顧客があります。
public class MultiTennantWebFormViewEngine : WebFormViewEngine
{
private static string[] LocalViewFormats =
new string[] {
"~/Views/{1}/" + ApplicationConfiguration.CustomerName + "/{0}.aspx",
"~/Views/{1}/{0}.aspx",
"~/Views/{1}/" + ApplicationConfiguration.CustomerName + "/{0}.ascx",
"~/Views/{1}/{0}.ascx",
"~/Views/Shared/{0}.aspx",
"~/Views/Shared/{0}.ascx"
};
public LocalizationWebFormViewEngine()
{
base.ViewLocationFormats = LocalViewFormats;
base.PartialViewLocationFormats = LocalViewFormats;
base.MasterLocationFormats = new string[] {
"~/Views/{1}/" + ApplicationConfiguration.CustomerName + "/{0}.master",
"~/Views/{1}/{0}.master",
"~/Views/Shared/" + ApplicationConfiguration.CustomerName + "/{0}.master",
"~/Views/Shared/{0}.master"
};
}
}