Есть несколько вещей, которые вы можете сделать. Первый уровень, как уже упоминалось, заключается в использовании другого файла CSS. Вы можете динамически указать другой путь к файлу CSS, создав метод Helper. Так что будет использовано что-то вроде этого:
<link href="<%=AppHelper.GetCSSPath("mysite.css")%>" rel="stylesheet" type="text/css" />
Это дает вам некоторый уровень настройки. Дальнейший уровень будет на самом деле иметь разные файлы просмотра для каждого подузла. Вы можете сделать это, создав новый ViewEngine:
public class SubSiteViewEngine: WebFormViewEngine
{
private string GetSiteRoot() {
// some logic to get the site root from the incoming URL
}
public SubSiteViewEngine()
{
MasterLocationFormats = new[] {
GetSiteRoote() + "/Views/{1}/{0}.master",
GetSiteRoote() + "/Views/Shared/{0}.master" ,
GetSiteRoote() + "/Views/Shared/MasterViews/{0}.master"
};
ViewLocationFormats = new[] {
GetSiteRoote() + "/Views/{1}/{0}.aspx",
GetSiteRoote() + "/Views/{1}/{0}.ascx",
GetSiteRoote() + "/Views/Shared/{0}.aspx",
GetSiteRoote() + "/Views/Shared/{0}.ascx",
GetSiteRoote() + "/Views/Shared/Controls/{0}.ascx"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
Надеюсь, это поможет.
P.S. Я сделаю это в ближайшее время для своего собственного проекта, поэтому у меня скоро должен быть настоящий рабочий код.