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

(0)

相关推荐

  • asp.net内置对象 Response对象使用介绍

    Response对象是HttpRespone类的一个实例.该类主要是封装来自ASP.NET操作的HTTP相应信息.Response对象将数据作为请求的结果从服务器发送到客户浏览器中,并提供有关响应的消息.它可用来在页面中输出数据,在页面中跳转,还可以传递各个页面的参数. 一.向页面中输出数据 语法格式        Response对象通过Write方法或WriteFile方法在页面输出数据,输出的对象可以是字符,字符串,字符数组,对象或文件.        用Response输出数据时,ASP

  • Asp.net中Response.Charset与Response.ContentEncoding区别示例分析

    本文以示例形式分析了Asp.net中Response.Charset与Response.ContentEncoding的区别,分享给大家供大家参考.具体如下: 1.Response.Charset  ASP.NET 中示例: <%@ Page CodePage=936 %> CodePage 告诉 IIS 按什么编码来读取 QueryString,按什么编码转换数据库中的内容-- 2.Response.ContentEncoding 获取或设置输出流的 HTTP 字符集. Response.C

  • ASP.NET之Response.Cookies.Remove 无法删除COOKIE的原因

    例子如下: 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e){    if (!IsPostBack)    {        HttpCookie UserInfo = new HttpCookie("UserInfo");        UserInfo.Value = "bdstjk";        Response.Cookies.Add(UserInfo);    } } pr

  • asp.net直接Response输出WML页面示例代码

    复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/vnd.wap.wml"; StringBuilder builder = new StringBuilder(); builder.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\" ?&

  • asp.net 使用Response.Filter 过滤非法词汇

    另一种解决方案是在输出时过滤掉非常词汇,优点是只要写一次就好了,可以过滤整站的非法词汇,缺点是,非法词汇仍然存入到了数据库中,呵呵,大家可以有针对性的选择,本例用的是后者,起因在于当初没有做此功能,后来需要添加,这时又不想改原来代码,所以就想了这个办法,主要是采用了HttpResponse.Filter属性来处理.具体代码如下: 首先自定义一个类,来作为非法词汇的过滤器 复制代码 代码如下: public class ResponseFilter:Stream { #region propert

  • ASP.NET笔记之 Request 、Response 与Server的使用

    1.Request 下面做一个实例,通过Request的一些方法来判断浏览图片是不是在内部浏览,还是直接按网址浏览或者被外部使用 复制代码 代码如下: <%@ WebHandler Language="C#" Class="image_Test" %> using System; using System.Web; public class image_Test : IHttpHandler { public void ProcessRequest(Ht

  • asp.net下Response.ContentType类型汇总

    在ASP.NET中使用Response.ContentType="类型名";来确定输出格式 'ez' => 'application/andrew-inset',  'hqx' => 'application/mac-binhex40',  'cpt' => 'application/mac-compactpro',  'doc' => 'application/msword',  'bin' => 'application/octet-stream', 

  • asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别

    Response.Redirect 简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面.你可以使用下面的代码将用户引导到另一个页面: Response.Redirect("WebForm2.aspx") 或者 Response.Redirect("http://www.cnnas.com/") Server.Transfer 也是通过一条语句将用户引导到另一页面,比如:Server.Transfer("WebForm2.aspx").不过,这

  • Asp.net response对象与request对象使用介绍

    1.Response:服务器发给客户端信息,或者说是服务器的向用户发送输出结果. Redirect:让客户端重新定向到指定的 URL. Write:写出指定字符串. 2.request:客户端发给服务器,或者说是从客户端取得信息. form:从使用post提交方式的表单获取表单元素的值. querystring:取回查询字符串中的变量值,适用于get提交方式的表单. 举一个列子:一个登陆页面,还有一个主页面.当登陆页面登陆成功后,就自动跳转到主页面. 1.login.aspx 复制代码 代码如下

  • asp.net中WebResponse 跨域访问实例代码

    前两天,一个朋友让我帮他写这样一个程序:在asp.net里面访问asp的页面,把数据提交对方的数据库后,根据返回的值(返回值为:OK或ERROR),如果为OK再把填入本地数据库.当时,想当然,觉得很简单,用js的xmlhttp ,如果根据response 的值是"OK"就执行提交本地数据库.很快写完发过去,让朋友试试,一试发现不行,后来一问,原来是跨域访问,我给忽略了,于是让朋友把asp改成web service,可朋友说程序是合作公司做的,只会asp,不会用web service ,

随机推荐