我有 2 个用于单个节点的模板。基于用户代理,我使用 Response.Redirect("?alttemplate=template2") 重定向到相应的模板。
我试过Server.Transfer("/?alttemplate=template2",true); 但没有用。
是否可以使用 Server.Transfer 方法做同样的事情。提前致谢。
Server.Transfer 不适用于 Umbraco(至少我从来没有让它工作)。我相信这是因为它没有触发所有必要的 Umbraco 事件来正确连接到模板中。
正如道格拉斯所说,您可以使用 Response.Redirect (实际上您应该使用,因为您正在更改 URL)。
另一种选择是连接到页面 OnPreInit 事件,此时您可以使用页面的 MasterPageFile 属性更改页面模板。这是假设您使用的是 Asp.Net MasterPages 模板,如果您使用的是 MVC Pages,我不确定您会怎么做。
我建议使用Response.Redirect
,因为Server.Transfer
不使用查询字符串。请参阅带有查询字符串的 server.Transfer和Server.Transfer 中的查询字符串。
有关详细信息,请参阅Server.Transfer 与。响应。重定向。