我有一个网络应用程序,到目前为止已被剥离(只是基本颜色和徽标,没有什么复杂)给一家公司,但是现在自从与另一家公司合并后,该网站需要被标记为两个独立的公司(运营)两者完全相同,它们共享相同的数据)。最简单的方法是复制Web应用程序并托管它的两个实例,但这将是一个维护麻烦,我真的只想为同一站点设置DNS别名。
基本上我想根据网站的网址更改主题。例如 alpha.company.com - >主题A. beta.comany.com - >主题B.
你会如何建议解决这个问题?
答案 0 :(得分:5)
在您的页面(或基页)中,获取PreInit处理程序(只有Page有此事件,而不是MasterPage)并执行以下操作:
protected void Page_PreInit(..)
{
this.Theme = GetThemeByUrl(Request.Url);
}
private string GetThemeByUrl(Uri url)
{
string host = url.Host; //gets 'subdomain.company.com'
//determine & return theme name from host
}
答案 1 :(得分:0)
最好的方法是覆盖页面类中的Theme属性:
选中此ASP.NET Themes and Right-to-Left Languages
public override string Theme
{
get
{
if (!string.IsNullOrEmpty(base.Theme))
{
return (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft ? string.Format("{0}.rtl", base.Theme) : base.Theme);
}
return base.Theme;
}
set
{
base.Theme = value;
}
}
答案 2 :(得分:-3)
在MasterPage.PreInit事件中使用:
Page.Theme = (Request.RawUrl.Contains("...") ? "yellow": "blue");
或者那些东西......
希望这有帮助, 林。