Server.Transfer方法与Redirect方法相比另一个显著的优势是在页面转换时,Request集合里的内容不会丢失,这给我们编程带来很大的方便.
Server.Transfer: 使用服务器端方法。在此方案中,服务器只是将上下文传输到另一页。其优点是您可以共享页之间的页上下文信息。其缺点是用户的浏览器不知道在进行传输,如果用户刷新此页,则可能会产生意外的结果。
Response.Redirect: 使用浏览器。在此方案中,将一个命令发送到用户浏览器,使浏览器获取另一页。其优点是更新浏览器的历史记录。其缺点是此方案执行额外的往返过程,这会影响性能。
Server.Transfer是你把请求的页面提交到服务器,然后由服务器来跳转页面, Response.Redirect是将你的请求的页面发送到服务器,然后服务器又回发给你浏览器,让你的浏览器来跳转页面,
所以Server.Transfer是看不到浏览器里URL的变化的,而用Response.Redirect则你可以看到URL发生了变化。
用Server.Transfer还有个问题就是只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; Server.Transfer可以减少客户端对服务器的请求。
Server.Transfer: 使用服务器端方法。在此方案中,服务器只是将上下文传输到另一页。其优点是您可以共享页之间的页上下文信息。其缺点是用户的浏览器不知道在进行传输,如果用户刷新此页,则可能会产生意外的结果。
Response.Redirect: 使用浏览器。在此方案中,将一个命令发送到用户浏览器,使浏览器获取另一页。其优点是更新浏览器的历史记录。其缺点是此方案执行额外的往返过程,这会影响性能。
Server.Transfer是你把请求的页面提交到服务器,然后由服务器来跳转页面, Response.Redirect是将你的请求的页面发送到服务器,然后服务器又回发给你浏览器,让你的浏览器来跳转页面,
所以Server.Transfer是看不到浏览器里URL的变化的,而用Response.Redirect则你可以看到URL发生了变化。
用Server.Transfer还有个问题就是只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; Server.Transfer可以减少客户端对服务器的请求。