一、Resonse.Redirect():
//Method1 Response.Redirect
string name = this.lb_Name.Text;
Response.Redirect("TargetPage.aspx?name=" + name);//優點傳值簡單;缺點:安全性低、不能傳遞數組和對象
二、Session
/*Method2 Session
* 优点:使用简单,不仅能传递简单数据类型,还能传递对象。2.数据量大小是不限制的。
* 缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源。2.容易丢失。
* 销毁的方法是:清除一个:Session.Remove("session名");清除所有:Session.Clear();
* 注意區別Application和Session:前者所有的用户共用的全局变量,后者是各个用户独有的全局变量。
* */
Session["Name"] = name;
//Response.Redirect("TargetPage.aspx");
三、Application
/*Method3 Application
* 优点:使用简单,消耗较少的服务器资源。2.不仅能传递简单数据,还能传递对象。3.数据量大小是不限制的。
* 缺点:1.作为全局变量容易被误操作。所以单个用户使用的变量一般不能用application。
*
* 注意:常用lock和unlock方法用来锁定和解锁,为了防止并发修改。
*
* */
Application["Name"] = this.Label1.Text;
方法四 Cookie:
/*Method 4 Cookies
*
* */
HttpCookie hc = new HttpCookie("Name", this.Label10.Text);
Response.Cookies.Add(hc);
//Response.Redirect("TargetPage.aspx");
方法五:Server.Transfer
/*Method 5 Server.Transfer();
*优点:1.直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求。2.可以传递各种数据类型的值和控件的值。
*缺点: 1.客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的图片、超链接都会导致错误的指向。
* 比较Server.Transfer和Response.Redirect的区别。
(1)Server.Transfer在服务器端完成,所以客户端浏览器中的URL地址是不会改变的;Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以客户端浏览器中的URL地址是会改变的。
(2)Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。
(3)Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转到任何URL地址。
(4)Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect则只能借助URL中带参数或是结合上面四种办法把各种类型的值传到新的页面。
* * */
Server.Transfer("TargetPage.aspx",false);
//Server.Transfer 传值
public string
Lb_Name {
get { return this.lb_Name.Text; }
}
使用Server.Transfer时在页面定义一个属性,在目标页面使用Context.Handler获取传递页面对象eg:
SourcePage sp = (SourcePage)
Context.Handler;//可以获取SourcePage页面的所有对象
this.TextBox4.Text = sp.
Lb_Name;目标页接收传递过来的值:
string name = Request.QueryString["Name"];
this.tb_value.Text = name;
this.TextBox1.Text = Session["Name"].ToString();
Application.Lock();
this.TextBox2.Text = Application["Name"].ToString();
Application.UnLock();
this.TextBox3.Text = Request.Cookies["Name"].Value.ToString();
SourcePage sp = (SourcePage)Context.Handler;//可以获取SourcePage页面的所有对象(SourcePage 为跳转之前的页面)
this.TextBox4.Text = sp.Lb_Name;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28699126/viewspace-757400/
,如需转载,请注明出处,否则将追究法律责任。