ASP.NET基于URL设置主题

Ros*_*ied 3 .net asp.net themes

我有一个网络应用程序,到目前为止已被剥皮(只是基本的颜色和徽标,没有什么复杂)给一家公司,但是现在,由于与另一家公司合并,该网站需要被标记为两个独立的公司(操作正是两者都相同,并且它们共享相同的数据).最简单的方法是复制Web应用程序并托管它的两个实例,但这将是一个维护麻烦,我真的只想为同一站点设置DNS别名.

基本上我想根据网站的URL更改主题.例如alpha.company.com - >主题A beta.comany.com - >主题B.

你会怎么建议解决这个问题?

Rex*_*x M 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
}
Run Code Online (Sandbox Code Playgroud)