欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net中Response.Redirect与Server.Transfer的区别分析

程序员文章站 2024-03-07 11:16:51
server.transfer方法把执行流程从当前的aspx文件转到同一服务器上的另一个aspx页面。调用server.transfer时,当前的aspx页面终止执行,执行...
server.transfer方法把执行流程从当前的aspx文件转到同一服务器上的另一个aspx页面。调用server.transfer时,当前的aspx页面终止执行,执行流程转入另一个aspx页面,但新的aspx页面仍使用前一aspx页面创建的应答流。
如果用server.transfer方法实现页面之间的导航,浏览器中的url不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换。
response.redirect则是客户端第一次请求服务器返回状态代码302及新url,客户端再次请求新url,服务器再返回新页面,比server.transfer多一次应答。


一般来说如果需要在两个页面间共享数据,而且数据量比较大的时候,用transfer会比较合适,在第二个页面中可以直接使用前一页面的数据,

eg:
transfertopage.aspx
复制代码 代码如下:

if(context.handler is transferfrompage)
{
transferfrompage post=(transferfrompage)context.handler;
startweekid=int32.parse(post.ddlstartweek.selectedvalue);
endweekid=int32.parse(post.ddlendweek.selectedvalue);
}

直接引用前一页面控件的值。
redirect可以传递一些较小字符串值。
response.redirect( "b.aspx?id=0&name=jeff ");