Если причина разделения проекта на 4 веб-проекта заключается в том, что у клиентов разные взгляды, попробуйте следующее:
Имейте 1 веб-проект и используйте подпапку для представлений, которые отличаются.
- Просмотров / На главную / About.aspx (используется, если не найдено подходящей подпапки)
- Views / Home / customer1 / About.aspx
- Views / Home / Customer2 / About.aspx
У вас может быть собственный viewengine, который решает, какой вид он должен визуализировать. У каждой установки в Интернете есть клиент, определенный в 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"
};
}
}