我什么时候会使用Server.Transfer而不是PostBackURL?

时间:2008-09-15 19:27:23

标签: asp.net

反之亦然。

更新:
嗯,我们假设我有一个购物车应用程序,用户点击Checkout按钮。 我要做的下一件事是将用户发送到Invoice.aspx页面(或类似的)。当用户点击结帐时,我可以Button.PostBackURL = "Invoice.aspx"

或者我可以做

Server.Transfer("Invoice.aspx")

(我也更改了标题,因为该方法称为Transfer而不是TransferURL)

3 个答案:

答案 0 :(得分:6)

  • 不会导致Server.TransferURL 在往返的HTTP中 请求/响应。地址栏 不会更新,至于 浏览器知道它只收到了 一份文件。 Server.Transfer还保留了执行上下文,因此脚本“继续”而不是“重新开始”。
  • PostbackURL确保了 HTTP请求,导致a 可能不同的URL,当然 导致网络延迟成本。

通常当你试图“在两者之间做出决定”时,这意味着你最好使用PostbackURL。

随意扩展您的问题,我们可以看看您的确切需求。

答案 1 :(得分:3)

这两者之间有很好的细分:

Server.Transfer vs Response.Redirect

答案 2 :(得分:1)

Server.Transfer完全从服务器完成。从客户端发起回发以发布表单内容,回发URL标识要发布到的页面。

也许您打算与Response.Redirect进行比较,后者会强制客户端提交新网址的新请求。