0

我有 2 个用于单个节点的模板。基于用户代理,我使用 Response.Redirect("?alttemplate=template2") 重定向到相应的模板。

我试过Server.Transfer("/?alttemplate=template2",true); 但没有用。

是否可以使用 Server.Transfer 方法做同样的事情。提前致谢。

4

2 回答 2

2

Server.Transfer 不适用于 Umbraco(至少我从来没有让它工作)。我相信这是因为它没有触发所有必要的 Umbraco 事件来正确连接到模板中。

正如道格拉斯所说,您可以使用 Response.Redirect (实际上您应该使用,因为您正在更改 URL)。

另一种选择是连接到页面 OnPreInit 事件,此时您可以使用页面的 MasterPageFile 属性更改页面模板。这是假设您使用的是 Asp.Net MasterPages 模板,如果您使用的是 MVC Pages,我不确定您会怎么做。

于 2013-05-28T09:59:02.267 回答
1

我建议使用Response.Redirect,因为Server.Transfer不使用查询字符串。请参阅带有查询字符串的 server.Transfer和Server.Transfer 中的查询字符串。

有关详细信息,请参阅Server.Transfer 与。响应。重定向。

于 2013-05-24T17:50:27.683 回答