Server.Transfer与Response.Redirect的区别

根本上,Response.Redirect是服务器告诉浏览器转向到新的网页,Server.Transfer则是服务器直接转向新的文件。

执行过程:

1、浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址 

2、浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件

切换对象: 1、Response.Redirect可以切换到任何存在的网页。 2、Server.Transfer只能切换到同目录或者子目录的网页。

数据保密: 1、Response.Redirect后地址会变成跳转后的页面地址。 2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。

传递的数据量(网址后附带的参数):

1、Response.Redirect能够传递的数据以2KB为限。 2、传递的数据超过2KB时,务必使用Server.Transfer。

的数据量(网址后附带的参数):

ASP.NET Server.Transfer()是在两个页面之间进行传值的好方法,从A页面Transfer到B页面时,就可以在B页面通过Context.Handler获得A页面的一个类的实例,从而在B调用A的各个成员对象。

注意:Transfer方法的第二个参数指示是否保留页面的Form和QuerryString的值,你可以试着把它设为False,则在WebForm2中将读不到TextBox1的值。

总结:

1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活;

2. Server.Transfer可以将页面参数方便传递到指定页面;

3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果;

4. Server.Transfer可以减少客户端对服务器的请求;

posted on 2014-08-05 18:53  lijie20111015  阅读(121)  评论(0)    收藏  举报