Asp.net mvc 翁布拉科同一地点不同品牌

Asp.net mvc 翁布拉科同一地点不同品牌,asp.net-mvc,umbraco,Asp.net Mvc,Umbraco,我对Umbraco很陌生,需要建立一个网站,让不同的客户访问同一个网站,但使用他们自己的品牌查看。它必须是IIS中的同一站点,并重复使用相同的razor视图和相关代码,但我们的业务团队需要为同一站点设置一个新客户,通过Umbraco为可配置的内容数据设置自己的值,而不依赖于支持或开发人员的参与 网站URL是www.mysite.com 来自ClientA的客户访问(可能通过URL www.mysite.com/ClientA或www.mysite.com?brand=ClientA)并看到为他们

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

网站URL是www.mysite.com

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

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

我的第一个问题是:这能实现吗?如果是,正确的方法是什么

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

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


提前感谢。

您可以在标准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);
  } 
}

因此,所有内容都标记到母版页文件夹中的标准母版页集;但是,如果请求一个“?brand=ClientA”url,它会自动将母版页更改为ClientA文件夹-允许您根据查询字符串为页面添加品牌。

谢谢。这是我通过浏览所有选项得出的结论(在这里提出问题之后),但我想从对翁布拉科有更多经验的人那里知道这是否是正确的方法。我更有信心,现在这是正确的做法。