Asp.net mvc 翁布拉科同一地点不同品牌
我对Umbraco很陌生,需要建立一个网站,让不同的客户访问同一个网站,但使用他们自己的品牌查看。它必须是IIS中的同一站点,并重复使用相同的razor视图和相关代码,但我们的业务团队需要为同一站点设置一个新客户,通过Umbraco为可配置的内容数据设置自己的值,而不依赖于支持或开发人员的参与 网站URL是www.mysite.com 来自ClientA的客户访问(可能通过URL www.mysite.com/ClientA或www.mysite.com?brand=ClientA)并看到为他们打上品牌的版本 ClientB的客户应该能够访问同一个站点,但可以传递他们的品牌代码,并查看他们的定制版本 我的第一个问题是:这能实现吗?如果是,正确的方法是什么 我想最大限度地重复使用代码 任何帮助或指点都将不胜感激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)并看到为他们
提前感谢。您可以在标准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文件夹-允许您根据查询字符串为页面添加品牌。谢谢。这是我通过浏览所有选项得出的结论(在这里提出问题之后),但我想从对翁布拉科有更多经验的人那里知道这是否是正确的方法。我更有信心,现在这是正确的做法。