什么是以下页面传输方法之间的区别

时间:2011-08-06 15:02:24

标签: asp.net response.redirect server.transfer postbackurl

以下内容之间有什么区别:

  1. Server.Transfer的?
  2. 的Response.Redirect?
  3. 一项PostBackUrl?
  4. 我应该何时决定使用哪个?

3 个答案:

答案 0 :(得分:1)

Server.Transer()在服务器端工作。它将使用与客户端请求不同的页面回复客户端。如果客户端刷新(F5),他将刷新原始页面。

Response.Redirect()向客户回复它应该转到其他页面。这需要额外的往返,但客户端将知道重定向,因此F5将请求目标页面。

PostbackUrl是告诉ASP控制点击客户端时去哪里的属性。这不需要额外的往返旅程,同时让客户知情。如果你可以使用这种方法,它通常比其他选择更好。

答案 1 :(得分:1)

Server.Transfer告诉ASP.NET将处理重定向到同一应用程序中的另一个页面。这完全发生在服务器端。这在服务器端更加“高效”,但这种方法存在一些局限性。以下链接描述了其中一些。

Response.Redirect实际上将HTTP 302状态代码发送回具有不同位置的响应中的客户端。然后,客户负责跟踪新位置。这里还有另一次往返。

PostBackUrl不是“转移方法”,而是一个告诉浏览器将表单发布到哪个URL的属性。默认情况下,表单将在服务器上回发给自己。

这是一个很好的链接:http://haacked.com/archive/2004/10/06/responseredirectverseservertransfer.aspx

答案 2 :(得分:1)

  1. Server.Transfer的:

    将请求从一个页面传输到服务器上的其他页面。 例如浏览器请求/page1.aspx

    请求来自第1页,您执行 Server.Transfer(“/ page2.aspx”),因此请求转移到page2并且page2返回作为响应但浏览器的地址栏仍然显示{{1}的URL }

  2. 的Response.Redirect

    此语句告诉浏览器请求下一页。在这种情况下,浏览器的地址栏也会更改并显示新的网页网址

  3. 一项PostBackUrl

    您可以在按钮或链接按钮上提及它。这会将表单提交到提供的页面。它类似于:

    /page1.aspx