C#跨页面传值方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#跨頁面傳值方法
1.QueryString變量
Querystring是一種非常簡單的傳值方式,其缺點就是會把要傳送的值顯示在瀏覽器的地址欄中,並且在此方法中不能夠傳遞對象。
如果你想傳遞一個安全性不是那麼太重要或者是一個簡單的數值時,用此方法最好不過了。
a.aspx.cs的C#代碼
private void Button1_Click(object sender, EventArgs e)
{
string url;
url="webform2.aspx?name=" + TextBox1.Text + "&email="
+ TextBox2.Text;
Response.Redirect(url);
}
aspx.cs的C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
2.Session變量
使用Session變量傳值是一種最常見的方式了,此中方式不僅可以把值傳遞到下一個頁面,還可以交叉傳遞到多個頁面,直至把Session變量的值removed後,變量才會消失。
a.aspx.cs的C#代碼
private void Button1_Click (object sender, EventArgs e)
{
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
b.aspx.cs的C#代碼
private void Page_Load (object sender, EventArgs e)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}
3.Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。
其常用的方法用Lock和UnLock。
a.aspx.cs的C#代碼
private void Button1_Click (object sender, EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx.cs的C#代碼
private void Page_Load (object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
4.Cookie對象變量
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。
而且Cookie的使用要配合 內置對象Request來使用。
a.aspx.cs的C#代碼
private void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
aspx.cs的C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
5.使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
aspx.cs的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("b.aspx");
}
aspx.cs中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = ;
}
*轉載/blog/tsungyi33/12064928。