Session、Cookie、Server.transfer、Querystring、Application
Session在用户向服务器发送首次请求的时候被创建,在用户关闭浏览器或者发生异常时被终止(也可以自己设定Session的过期时间)。
//Session创建 Session["Name"] = txtName.Text; //在其他页面中读取Session值 if(Session["Name"] != null) Lable.Text = Session[""Name].toString();
Cookie做服务端创建,保存在客户端。
HttpCookie cName = new HttpCookie("Name"); cName.Value = txtName.Text; Response.Cookies.Add(cName); Response.Redirect("WebForm5.aspx");
创建一个名叫cName的Cookie实力对象,由于一个Cookie可以保存多个值,我们需要告诉编译器这个cookie将保存“Name”值,并把txtName.Text的值赋给它,并把它加到"输出流” 中,并使用Response.Redirect输出到另外一个网页。
if (Request.Cookies["Name"] != null ) Label.Text = Request.Cookies["Name"].Value;
Session 和 Cookie 用法有些类似,一个是Request.Cookie 一个是 Request.QueryString
注:一些浏览器不支持Cookie。
Server.Trasfer(HttpContext)
我们还可以使用 Server.Transfer方式(或称HttpContext方式)在页面之间传递变量,此时,要传递的变量可以通过属性或方法来获得,使用属性将会比较容易一些。
public string GetName { get { return txtName.Text; } }
我们需要使用Server.Transfer把这个值发送到另外一个页面中去,请注意Server.Transfer只是发送控件到一个新的页面去,而并不会使浏览器重定向到另一个页面。所以,我们我们在地址栏中仍然看到的是原来页面的URL。如下代码所示:
Server.Transfer("WebForm5.aspx");
// You can declare this Globally or in any event you like WebForm4 w; // Gets the Page.Context which is Associated with this page w = (WebForm4)Context.Handler; // Assign the Label control with the property "GetName" which returns string Label.Text = w.GetName;
QueryString URL Response.Redirct
private void Button1_Click(object sender, System.EventArgs e) { // Value sent using HttpResponse Response.Redirect("WebForm5.aspx?Name="+txtName.Text); }
接收值要在Page_Load中
if (Request.QueryString["Name"]!= null) Label.Text = Request.QueryString["Name"];
Application
相当于一个全局的静态变量,可以在所有的页面中获取他。
// 为Application变量赋值 Application["Name"] = txtName.Text; Response.Redirect("WebForm5.aspx"); // 从Application变量中取出值 if( Application["Name"] != null ) Label.Text = Application["Name"].ToString();
时间: 2024-11-02 23:37:12