程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET 跨頁面傳值方法

ASP.NET 跨頁面傳值方法

編輯:ASP.NET基礎
1. 使用QueryString變量
    QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在浏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對於傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
復制代碼 代碼如下:
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}

b.aspx中C#代碼
復制代碼 代碼如下:
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}

2. 使用Application 對象變量
    Application對象的作用范圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
復制代碼 代碼如下:
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}

b.aspx中C#代碼
復制代碼 代碼如下:
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}

3. 使用Session變量
    想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用於用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
復制代碼 代碼如下:
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}

b.aspx中C#代碼
復制代碼 代碼如下:
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}

4. 使用Cookie對象變量
    這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
復制代碼 代碼如下:
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}

b.aspx中C#代碼
復制代碼 代碼如下:
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}

5. 使用Server.Transfer方法
    這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
復制代碼 代碼如下:
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}

b.aspx中C#代碼
復制代碼 代碼如下:
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}

6.post方法
復制代碼 代碼如下:
<form action="default.aspx" method="post" enctype="application/x-www-form-urlencoded" name="form1" id="form1">
<label>xm
<input name="xm" type="text" id="xm" value="xiaoqi" style="width: 149px" />
</label>
<label><br />
xb
<input name="xb" type="text" id="xb" value="nan" style="width: 154px" />
</label>
<p>
<input type="submit" name="button" id="button" value="send" />
</p>
</form>
//獲取客戶端參數(post)2
this.Response.Write("<br/>" + this.Request.Form["xm"]);
this.Response.Write("<br/>" + this.Request.Form["xb"]);
this.Response.Write("<br/>請求類型:" + this.Request.RequestType);
this.Response.Write("<br/>從客戶端讀取POST成功!");
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved