【问题标题】:umbraco one site different brandsumbraco 一个站点不同的品牌
【发布时间】:2013-11-29 15:35:21
【问题描述】:

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

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

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

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

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

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

任何帮助或指点将不胜感激。

提前致谢。

【问题讨论】:

    标签: asp.net-mvc umbraco


    【解决方案1】:

    您可以在标准的 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 文件夹中的标准 masterpages 集;但如果请求“?brand=ClientA” url,它会自动将母版页更改为 clienta 文件夹 - 允许您根据查询字符串对页面进行品牌化。

    【讨论】:

    • 谢谢。这是我通过遍历所有选项得出的结论(因为在这里提出问题),但我想从对 Umbraco 有更多经验的人那里知道这是否是正确的方法。我现在更有信心这是正确的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    相关资源
    最近更新 更多