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

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 ");

时间: 2025-01-19 08:38:23

asp.net中Response.Redirect与Server.Transfer的区别分析的相关文章

asp.net中Response.Redirect与Server.Transfer的区别分析_实用技巧

Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面.调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流. 如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换. Response.Redirect则是客户端第一次请求服务器返回状态代码302及

response.redirect和Server.Transfer的区别详解

redirect|response|server|区别|详解 一般会使用response.redirect这条语句进行地址转向,ASP3.0以后提供了一种新的方法给我们,这种方法更加高效.让我们先来看看response.redirect和Server.Transfer分别是如何Run的! response.redirect其实上是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求response.redirect后面的那个新的http地址,流程如下:

ASP.NET中Response.Redirect()方法深度剖析

首先在Visual Studio中新建一个网站,在Default页面的Page_Load事件中写下 Response.Redirect("http://www.baidu.com"); 然后添加一个 Page_LoadComplete事件处理方法. 最终效果如下: 在12和17行设置了断点,方便对整个过程进行观察. 打开Fiddler,用以观察整个过程中的HTTP数据. 点击"调试"按钮 程序开始执行. 这时Fiddler中出现了一条数据:

asp.net中Request.QueryString与Request.Param的区别分析_实用技巧

request.params其实是一个集合,它依次包括request.querystring.request.form.request.cookies和request.servervariables. 如果要在两个页面传递数据的话,只能用request.querystring.request.form.request.cookies Request.Params 是在 QueryString.Form.Server Variable 以及 Cookies 找数据, 他首先在 QueryStrin

asp.net中Session缓存与Cache缓存的区别分析_实用技巧

其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息. Session则保存对话信息. Application则是保存在整个应用程序范围内的信息,相当于全局变量. Session用的比较多. Session缓存与Cache缓存的区别,可以参考如下的几点: 1.最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效. 2.即使应用程序终止,只要Cache.Add方法中定义的缓存时间未过期,下次开启应用程序时,缓存的数据依然存在.

ASP.NET中Response.Write怎么在指定的单元格里输入文本??

问题描述 ASP.NET中Response.Write怎么在指定的单元格里输入文本??Response.Write语句是在.aspx.cs文件中. 解决方案 解决方案二:用literal不可以吗?解决方案三:不能!response.write在后台执行,这时前台的html页面都还没生成.所以你一般都会看到response.write写的东西在最上面的解决方案四:必须用response.write吗?用<td><%=st()%></td>后台用publicstringst

Server.Transfer,Response.Redirect 和 Page.Navigate 的区别

redirect|response|server|区别 Server.Transfer(ASP 3.0 以上) 和 Response.Redirect 在以前的 ASP 中就存在了,Page.Navigate 是 ASP.NET Beta 1 提供的新功能,它们之间的区别在于: 1.Server.Transfer - 用于把处理的控制权从一个页面转移到另一个页面,在转移的过程中,没有离开服务器,内部控件(如:request, session 等)的保存的信息不变,因此,你能从页面 A 跳到页面

关于asp.net的response.redirect无法跳转到下一个网页

问题描述 protectedvoidbtnOK_Click(objectsender,EventArgse){stringname=this.txtName.Text;stringsex="先生";if(rbtnSex2.Checked)sex="女士";Response.Redirect("~/welcome.aspx?Name="+name+"&Sex="+sex);}} 解决方案 解决方案二:路径是否正确,单步调

ASP.NET笔记之 控件与母板的区别分析_实用技巧

1.ASP.NET的好坏处 CodeBehind:"前aspx后cs"的模式,(1.aspx(控件定义.html.css)控制页面长相,cs控制程序逻辑aspx就是模板引擎,不需要再去寻找第三方的模板引擎(2.aspx中调用cs的成员级别必须是protected或者public不能是private因为当前this执行的是当前的子类(通过反编译查看) 2. Literal: Mode属性,避免XSS攻击 TextBox:AutopostBack=true 焦点离开Textbox提交表单A