Server.Transfer()
重定向发生在服务器端,把处理的控制权从当前页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变。
1.只能在同一服务器的同一站点访问
2.执行Server.Transfer()之后,浏览器地址栏不会发生改变,仍是访问是的url,不是Server.Transfer()的url(重定向完全在服务器端进行,所以url不会发生改变)
3.执行Server.Transfer()之后仍会走完整个方法体.(Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面。调用Server.Transfer时,当前的ASPX页面终止执行,
执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流.)
4.在服务器端重定向,没有新增http请求,所以在性能上比 Response.Redirect()要好.
5.Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成True,就可以保留第一个页面的表单数据和查询字符串
Response.Redirect()
重定向发生在客户端,发送一个HTTP响应到客服端浏览器,客服端在发送跳转请求到服务器。
1.可访问本地址,也可以重定向到服务器以外的站点
2.执行 Response.Redirect()之后,浏览器地址栏发生改变,显示的是Response.Redirect中的url
3.执行Response.Redirect()之后直接结束该方法,跳转至目标页面.()
4.执行了http请求,增加了服务器的负担.
5.只能通过url传值