1.Request 对象传值(Request.QueryString[])
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。
实例:创建QueryString.aspx和AcceptValue.aspx页面
传值端代码:
public partial class QueryString : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string heloo= this.TextBox1.Text;
Response.Redirect("AcceptValue.aspx?name="+heloo );
}
}
接值端代码:
public partial class AcceptValue : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this .TextBox1 .Text =Request .QueryString ["name"];
}
}
说明:传值时需定义一个变量(这里暂时定义是name)注意Response.Redirect()中的字符串写法(跳转页面+?+变量+变量值)
2.session对象传值
此方法比较常用,过量的存储会导致服务器内存资源的耗尽。
具体用法:传值端先定义session变量
string stt="你好";
Session["name"]=stt;
接值端页面:
this.TextBox1.text=Session["name"].ToString();
3.application对象传值
Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
传值端代码:
public partial class application : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Application["name"] = this.TextBox1.Text;
Server.Transfer("AcceptValue.aspx");
}
}
接值端代码:
public partial class AcceptValue : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Application.Lock();
this.TextBox1.Text = Application["name"].ToString();
Application.UnLock();
}
}
4.使用cookie对象传值
这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。
传值端代码:
public partial class cookie : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//定义cookie对象
HttpCookie hc = new HttpCookie("name");
//赋值过程
hc.Value = this.TextBox1.Text;
//Reponse对象装载
Response.AppendCookie(hc);
Server.Transfer("AcceptValue.aspx");
}
}
接值端代码:
public partial class AcceptValue : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.TextBox1.Text = Request.Cookies["name"].Value.ToString();
}
}
5.server对象传值
经常使用Server.Tranfer()方法在页面间传值,首先要传递的数据定义为页面的属性,然后再目的页面中通过源页面的实例来访问。
传值端代码:
public partial class server : System.Web.UI.Page
{
//首先创建传递变量的属性
public string name
{
get { return this.TextBox1.Text; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//传递方法定义
Server.Transfer("AcceptValue.aspx",true );
}
}
接值端代码:
public partial class AcceptValue : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//在接值页面首先利用Context.Hander创建对源页面实例的引用,然后用这个页面源页面的属性,从而获得要传送的数据
server oform = (server)this.Context.Handler;
this.TextBox1.Text = oform.name;
}
}
此外还有ViewState对象传值,它一般用于同一页面内保存和还原状态信息。
实例代码:(首先使用ViewState对象保存变量值)
ViewState["Usrname"]="mr";
然后,将保存在ViewState的值可以赋值给控件
this.label1.Text =ViewState["Username"].ToString();