我有2个模板用于单个节点。基于用户代理,我使用Response.Redirect(“?alttemplate = template2”)重定向到相应的模板。
我尝试了 Server.Transfer(“/?alttemplate = template2”,true); 但没有用。
是否可以使用Server.Transfer方法执行相同的操作。提前谢谢。
答案 0 :(得分:2)
Server.Transfer不能与Umbraco一起工作(至少我从来没有让它工作)。我相信这是因为它没有触发所有必要的Umbraco事件来正确连接模板。
正如道格拉斯所说,你可以使用Response.Redirect(事实上你应该,因为你正在改变URL)。
另一个选项是连接到页面OnPreInit事件,此时您可以使用页面的MasterPageFile属性更改页面模板。这假设你使用的是Asp.Net MasterPages模板,如果你使用的是MVC页面,我不知道你是怎么做的。
答案 1 :(得分:1)
我建议使用Response.Redirect
,因为Server.Transfer
不使用查询字符串。请参阅server.Transfer with query string和Query string in Server.Transfer。
有关详细信息,请参阅Server.Transfer Vs. Response.Redirect。