source.cs
public
string
Name
... {
get
...{
return txtName.Text;
}
}
public string Pwd
... {
get
...{
return txtPwd.Text;
}
}
private void btnCommit_Click( object sender, System.EventArgs e)
... {
//1.使用QueryString方式传值
//QueryString是一种非常简单的传值方式,它可以将传送的值显示在浏览器的地址栏中,
//如果想要传递一个安全性不太重要或一个结构简单的数值时,用此法最容易。但如果要
//传递的信息涉及安全性或值的类型是较为复杂的array(数组)或object(对象)时,
//就不能和此方法。
//实现:
string url;
url = "distination.aspx Name=" + txtName.Text + "&Pwd=" + txtPwd.Text;
Response.Redirect(url);
//2.使用Application对象变量
//Application对象在服务器端生成一个状态变量来存储所需的信息,该Application对象
//变量的可视范围涵盖全部使用者,也就是只要正在使用这个网页程序的程序都可以存取
//这个状态变量。这就意味着它只能存储一些要公布的信息,而对于那些涉及个人及安全
//的信息就不能用它来存取。Application对象变量有2个常用的方法,Lock和UnLock方法,
//主要用于处理多个用户对存储在Application变量中的数据进行写入的问题。Lock方法锁
//定全部的Application变量,从而阻止其他用户修改Application对象的变量值,UnLock
//方法则解除对Application对象变量的锁定。
//例如聊天室的制作,也可以用Static对象变量来代替。
//实现:
Application["Name"] = txtName.Text;
Application["Pwd"] = txtPwd.Text;
Server.Transfer("distination.aspx");
//3.使用Session对象变量
//Session对象变量和Application对象变量一样,都是用来存储跨网页程序的变量或是对象。
//但与Application对象变量不同的是,Session对象变量只针对单一网页使用者,各个连接的
//机器有各自的Session对象变量,不同的客户端无法相互存取。在Session变量使用过程中,
//当用户在应用程序中从一页移动到另一页时,存储在Session对象中的变量不会被放弃,只有
//当用户关掉浏览器或超过设定Session对象变量的有效时间时,Session变量才会消失。因此,
//Session对象变量若存储过多的数据则会消耗大量的服务器资源,在使用时尤其要注意控制数量。
//当然也可以利用Session对象的方法,如获至宝Remove、Clear来及时清理,以降低资源的消耗。
//实现:
Session["Name"] = txtName.Text;
Session["Pwd"] = txtPwd.Text;
Server.Transfer("distination.aspx");
//4.使用Cookie对象变量
//Session对象变量和Application对象变量都是在服务器端产生的,与此不同,Cookie变量的数据
//是以文件形式放于客户端文件系统或客户端浏览器会话内的内存中,只含少量信息,并且可以永
//久存在或终止于所设定的时间,使用时配合ASP.NET的内置对象ResPonse和Request完成传值。另
//外,Cookie是与Web站点而不是具体页面关联的,不论用户请示浏览器站点中的哪个页面,浏览器
//和服务器都将交换Cookie信息。由于Cookie对象变量在客户端存取,不可避免地带来存取权限及
//安全性问题,对于用户而言,要慎用。
//实现:
HttpCookie Name = new HttpCookie("Name");
HttpCookie Pwd = new HttpCookie("Pwd");
Name.Value = txtName.Text;
Pwd.Value = txtPwd.Text;
Response.AppendCookie(Name);
Response.AppendCookie(Pwd);
Server.Transfer("distination.aspx");
//5.使用server.Transfer方法
//server.Transfer把执行流程从当前的aspx页面转到同一服务器的另一个aspx页面,新的aspx页面
//仍然使用前一aspx页面创建的应答流,可以通过对象属性的方式来存取信息。使用该方法进行值传
//递需要额外创建一些属性以便在另一页面访问它,这种方法是面向对象的,简洁而有效。
//实现:
//在属性申明区写上相应的属性
Server.Transfer("distination.aspx");
}
... {
get
...{
return txtName.Text;
}
}
public string Pwd
... {
get
...{
return txtPwd.Text;
}
}
private void btnCommit_Click( object sender, System.EventArgs e)
... {
//1.使用QueryString方式传值
//QueryString是一种非常简单的传值方式,它可以将传送的值显示在浏览器的地址栏中,
//如果想要传递一个安全性不太重要或一个结构简单的数值时,用此法最容易。但如果要
//传递的信息涉及安全性或值的类型是较为复杂的array(数组)或object(对象)时,
//就不能和此方法。
//实现:
string url;
url = "distination.aspx Name=" + txtName.Text + "&Pwd=" + txtPwd.Text;
Response.Redirect(url);
//2.使用Application对象变量
//Application对象在服务器端生成一个状态变量来存储所需的信息,该Application对象
//变量的可视范围涵盖全部使用者,也就是只要正在使用这个网页程序的程序都可以存取
//这个状态变量。这就意味着它只能存储一些要公布的信息,而对于那些涉及个人及安全
//的信息就不能用它来存取。Application对象变量有2个常用的方法,Lock和UnLock方法,
//主要用于处理多个用户对存储在Application变量中的数据进行写入的问题。Lock方法锁
//定全部的Application变量,从而阻止其他用户修改Application对象的变量值,UnLock
//方法则解除对Application对象变量的锁定。
//例如聊天室的制作,也可以用Static对象变量来代替。
//实现:
Application["Name"] = txtName.Text;
Application["Pwd"] = txtPwd.Text;
Server.Transfer("distination.aspx");
//3.使用Session对象变量
//Session对象变量和Application对象变量一样,都是用来存储跨网页程序的变量或是对象。
//但与Application对象变量不同的是,Session对象变量只针对单一网页使用者,各个连接的
//机器有各自的Session对象变量,不同的客户端无法相互存取。在Session变量使用过程中,
//当用户在应用程序中从一页移动到另一页时,存储在Session对象中的变量不会被放弃,只有
//当用户关掉浏览器或超过设定Session对象变量的有效时间时,Session变量才会消失。因此,
//Session对象变量若存储过多的数据则会消耗大量的服务器资源,在使用时尤其要注意控制数量。
//当然也可以利用Session对象的方法,如获至宝Remove、Clear来及时清理,以降低资源的消耗。
//实现:
Session["Name"] = txtName.Text;
Session["Pwd"] = txtPwd.Text;
Server.Transfer("distination.aspx");
//4.使用Cookie对象变量
//Session对象变量和Application对象变量都是在服务器端产生的,与此不同,Cookie变量的数据
//是以文件形式放于客户端文件系统或客户端浏览器会话内的内存中,只含少量信息,并且可以永
//久存在或终止于所设定的时间,使用时配合ASP.NET的内置对象ResPonse和Request完成传值。另
//外,Cookie是与Web站点而不是具体页面关联的,不论用户请示浏览器站点中的哪个页面,浏览器
//和服务器都将交换Cookie信息。由于Cookie对象变量在客户端存取,不可避免地带来存取权限及
//安全性问题,对于用户而言,要慎用。
//实现:
HttpCookie Name = new HttpCookie("Name");
HttpCookie Pwd = new HttpCookie("Pwd");
Name.Value = txtName.Text;
Pwd.Value = txtPwd.Text;
Response.AppendCookie(Name);
Response.AppendCookie(Pwd);
Server.Transfer("distination.aspx");
//5.使用server.Transfer方法
//server.Transfer把执行流程从当前的aspx页面转到同一服务器的另一个aspx页面,新的aspx页面
//仍然使用前一aspx页面创建的应答流,可以通过对象属性的方式来存取信息。使用该方法进行值传
//递需要额外创建一些属性以便在另一页面访问它,这种方法是面向对象的,简洁而有效。
//实现:
//在属性申明区写上相应的属性
Server.Transfer("distination.aspx");
}
distination.cs
private void Page_Load( object sender, System.EventArgs e)
... {
if(!IsPostBack)
...{
//1.使用QueryString方式接值
if(Request.QueryString["Name"]!=null || Request.QueryString["Name"].Trim()=="")
...{
Response.Write("您的姓名为:" + Request.QueryString["Name"] + "<br>" + "您丢失的密码为:" + Request.QueryString["Pwd"]);
}
//2.使用Application对象变量
Application.Lock();
Response.Write("您的姓名为:" + Application["Name"].ToString() + "<br>" + "您丢失的密码为:" + Application["Pwd"].ToString());
Application.UnLock();
//3.使用Session对象变量
Response.Write("您的姓名为:" + Session["Name"].ToString() + "<br>" + "您丢失的密码为:" + Session["Pwd"].ToString());
Session.Remove("Name");
//或者用Clear方法
Session.Remove("Pwd");
//4.使用Cookie对象变量
Response.Write("您的姓名为:" + Request.Cookies["Name"].Value.ToString() + "<br>" + "您丢失的密码为:" + Request.Cookies["Pwd"].Value.ToString());
//5.使用server.Transfer方法
source sc;
sc = (source)Context.Handler;
//Context.Handler属性用来获得对页面实例对象的引用
Response.Write("您的姓名为:" + sc.Name + "<br>" + "您丢失的密码为:" + sc.Pwd);
}
}
补充:
1. 使用 Page.PreviousPage 属性,通过Server.Transfer 或修改服务器按钮控件 PostBackUrl 属性。
2. 使用中间页面,request.aspx -> mediator.htm -> target.aspx