Response.Redirect与Server.Transfer区别 server.transfer

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

下面的示例建立了WebForm1和WebForm2,通过S erver.Transfer()方法演示在WebForm2中读取WebForm1的文本框、读取属性、通过Context传值、调用WebForm1的方法等:

WebForm1上放置一个TextBox1和一个Button1,程序如下:

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBoxTextBox1;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgse)
{
Context.Items.Add("Context","Context fromForm1");
}
public string Time
{
get{return DateTime.Now.ToString();}
}
public string TestFun()
{
return " of WebForm1 Called";
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Button1.Click += newSystem.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgse)
{
Server.Transfer("WebForm2.aspx", true);
}

在WebForm2上放置一个Literal1控件,程序如下:

public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Literal Literal1;

private void Page_Load(object sender, System.EventArgse)
{
string strTxt="";
WebForm1oForm=(WebForm1)this.Context.Handler;
Response.Redirect与Server.Transfer区别 server.transfer
strTxt+=" of Textbox:"+Request.Form["TextBox1"]+"<br>";
strTxt+="Time Property:"+oForm.Time+"<br>";
strTxt+="Context String:"+Context.Items["Context"].ToString()+"<br>";
strTxt+=oForm.TestFun()+"<br>";
Literal1.Text =strTxt;
//顺便说一下,Literal的意义是能够转换成客户端Html代码后
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}

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

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/242944.html

更多阅读

大理石与花岗岩的区别 大理石有辐射吗

大理石与花岗岩的区别 ? ?一、按石材成因划分:1.大理石大理石属于变质岩变质岩是在高温高压和矿物质的混合作用下由一种石头自然变质成的另一种石头。质变可能是重结晶、纹理改变或颜色改变。天然大理石是地壳中原有

电脑待机与休眠的区别 电脑待机和休眠的区别

电脑待机与休眠的区别? ? 首先确定的是休眠和待机不能下载的。因为硬盘都断电了。?休眠和待机的原理都是吧内存的东西保存住,下次就可以不用重新加载操作系统,但他们最大的不同是前者把内存中的数据临时保存到硬盘中,下次开机就直接

黄金期货交易规则与股票的区别 商品期货交易规则

黄金期货交易规则与股票的区别——简介国内第一个贵金属期货品种黄金期货2008年1月9日正式在上海期货交易所挂牌交易。上海期货交易所昨日发布公告,将各个期限黄金期货合约挂牌当日的基准价规定在209.99元/克的水平上。黄金期货交易

港货与行货的区别 港版和国行怎么分辨

港货与行货的区别——简介港货和行货通常代表从不同销售渠道进入大陆的电子产品,下面简单和大家分享港货和行货的区别。港货与行货的区别——工具/原料聪明的你港货与行货的区别——方法/步骤港货与行货的区别 1、

函数COUNT与COUNTA的区别 excel count和counta

函数COUNT与COUNTA的区别——简介COUNT与COUNTA经常用在Excel统计参数列表中指定项个数的情景中。而两者也是存在这差别的,如果不注意的话,这两个函数就容易搞混;这两个函数应该说很简单,也比较容易掌握,但大多数人可能只知COUNT不知COUN

声明:《Response.Redirect与Server.Transfer区别 server.transfer》为网友緈諨分享!如侵犯到您的合法权益请联系我们删除