我对Umbraco很新,并且要求建立一个不同客户访问同一网站的网站,但要看自己的品牌。它必须是IIS中的同一站点并重新使用相同的剃刀视图和相关代码,但我们的业务团队需要为同一站点设置新客户,并通过Umbraco为其配置自己的可配置内容数据值依靠支持或开发人员的参与。
例如。网站网址是www.mysite.com
来自ClientA的客户访问(可能是通过URL www.mysite.com/ClientA或www.mysite.com?brand=ClientA),并看到为他们打上品牌版本。
来自ClientB的客户应该能够访问同一个网站,但不要传递他们的品牌代码并查看他们的自定义版本。
我的第一个问题是:这是否可以实现?如果是这样,那么正确的方法是什么?
我想最大限度地重复使用代码。
非常感谢任何帮助或指示。
提前致谢。
答案 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文件夹 - 允许您根据查询字符串对页面进行标记。