umbraco一个网站不同的品牌

时间:2013-11-29 15:35:21

标签: asp.net-mvc umbraco

我对Umbraco很新,并且要求建立一个不同客户访问同一网站的网站,但要看自己的品牌。它必须是IIS中的同一站点并重新使用相同的剃刀视图和相关代码,但我们的业务团队需要为同一站点设置新客户,并通过Umbraco为其配置自己的可配置内容数据值依靠支持或开发人员的参与。

例如。网站网址是www.mysite.com

来自ClientA的客户访问(可能是通过URL www.mysite.com/ClientA或www.mysite.com?brand=ClientA),并看到为他们打上品牌版本。

来自ClientB的客户应该能够访问同一个网站,但不要传递他们的品牌代码并查看他们的自定义版本。

我的第一个问题是:这是否可以实现?如果是这样,那么正确的方法是什么?

我想最大限度地重复使用代码。

非常感谢任何帮助或指示。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以这样做是标准的asp.net,为umbraco用来驱动一切的标准default.aspx页面添加一个代码,然后在onpreinit事件中将主页面或主题切换到正确的品牌;类似的东西:

protected override void OnPreInit(EventArgs e)
{
  base.OnPreInit(e);

  int templateId = umbraco.NodeFactory.Node.GetCurrent().template;
  umbraco.template template = new umbraco.template(templateId);
  string templateName = template.TemplateAlias;

  if (Request.QueryString["brand"] = "ClientA")
  {
    Page.MasterPageFile = string.format("~/MasterPages/clienta/{0}.master", templateName);
  } 
}

因此,所有内容都标记为masterpages文件夹中的标准主页;但如果请求“?brand = ClientA”网址,它会自动将母版页更改为clienta文件夹 - 允许您根据查询字符串对页面进行标记。