Ba la la la ~ 讀者朋友,你們好啊铛漓,又到了冷鋒時(shí)間,話不多說鲫构,發(fā)車浓恶!
一、QueryString傳值:
這是最簡(jiǎn)單的傳值方式结笨,但缺點(diǎn)是傳的值會(huì)顯示在瀏覽器的地址欄中且不能傳遞對(duì)象包晰,只適用于傳遞簡(jiǎn)單的且安全性要求不高的整數(shù)值,例如:
新建一個(gè)WEB項(xiàng)目炕吸,添加一個(gè)頁面命名為Test1伐憾,在頁面中添加一個(gè)Button命名為btnLogin,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord赫模,添加Button的Click()事件:
private void btnLogin_Click (object sender, System.EventArgs e)
{
string url=" Test1.aspx?UserName=" +txtUserName.Text + "&Password=”+txtPassWord.Text+””;
Response.Redirect(url);
}
- 添加另一個(gè)頁面命名為Test2树肃,在頁面添加兩個(gè)Lable分別命名為lblUserName和lblPassWord,添加頁面的Load()事件:
private void Page_Load (object sender, System.EventArgs e)
{
lblUserName.Text=Request.QueryString["UserName"];
lblPassWord.Text=Request.QueryString["Password"];
}
- 把Test1設(shè)為起始頁瀑罗,運(yùn)行項(xiàng)目在Test1頁面的文本框中輸入值后點(diǎn)擊按鈕胸嘴,就可以在Test2頁面中顯Test1頁面輸入的結(jié)果莉钙。
二、Server.Transfer傳值:
這種方式避免了要傳遞的值顯示在瀏覽器的地址欄中筛谚,但是比較麻煩磁玉,例如:
新建一個(gè)WEB項(xiàng)目,添加兩個(gè)頁面分別命名為Test1和Test2驾讲,在Test1頁面中添加一個(gè)Button命名為btnLogin蚊伞,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord,在Test2頁面添加兩個(gè)Lable分別命名為lblUserName和lblPassWord吮铭,為Test1添加過程返回txtUserName和txtPassWord的值并添加btnLogin的Click()事件:
public string UserName
{
get
{
return txtUserName.Text;
}
}
public string Password
{
get
{
return txtPassWord.Text;
}
}
private void btnLogin_Click (object sender, System.EventArgs e)
{
Server.Transfer("Test2.aspx");
}
- 添加Test2頁面的Load()事件:
private void Page_Load (object sender, System.EventArgs e)
{
Test1 t1; //創(chuàng)建原始窗體的實(shí)例
t1=( Test1)Context.Handler; //獲得實(shí)例化的句柄
lblUserName.Text= t1.UserName;
lblPassWord.Text= t1.Password;
}
- 把Test1設(shè)為起始頁时迫,運(yùn)行項(xiàng)目在Test1頁面的文本框中輸入值后點(diǎn)擊按鈕,就可以在Test2頁面中顯Test1頁面輸入的結(jié)果谓晌。
三掠拳、Cookie對(duì)象變量:
Cookie是針對(duì)每一個(gè)用戶而言的斟叼,是存放在客戶端的 萧落,Cookie的使用要配合ASP.NET內(nèi)置對(duì)象Request來使用,例如:
新建一個(gè)WEB項(xiàng)目茴丰,添加兩個(gè)頁面分別命名為Test1和Test2柏肪,在Test1頁面中添加一個(gè)Button命名為btnLogin姐刁,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord,在Test2頁面添加兩個(gè)Lable分別命名為lblUserName和lblPassWord烦味,為Test1添加Button的Click()事件:
private void btnLogin_Click (object sender, System.EventArgs e)
{
HttpCo
okie cookie_UserName = new HttpCookie("UserName");
HttpCookie cookie_PassWord = new HttpCookie("PassWord ");
cookie_ UserName.Value = txtUserName.Text;
cookie_ PassWord.Value = txtPassWord.Text;
Response.AppendCookie(cookie_ UserName);
Response.AppendCookie(cookie_ PassWord);
Server.Transfer("Test2.aspx");
}
- 添加Test2頁面的Load()事件:
private void Page_Load (object sender, System.EventArgs e)
{
lblUserName.Text = Request.Cookies["UserName"].Value.ToString();
lblPassWord.Text = Request.Cookies["PassWord "].Value.ToString();
}
- 把Test1設(shè)為起始頁聂使,運(yùn)行項(xiàng)目在Test1頁面的文本框中輸入值后點(diǎn)擊按鈕,就可以在Test2頁面中顯Test1頁面輸入的結(jié)果谬俄。
四柏靶、Session對(duì)象變量:
Session也是針對(duì)每一個(gè)用戶而言的,是存放在服務(wù)器端的 溃论,Session不僅可以把值傳遞到下一個(gè)頁面屎蜓,還可以交叉?zhèn)鬟f到多個(gè)頁面,直至把Session變量的值removed 后蔬芥,變量才會(huì)消失梆靖,例如:
新建一個(gè)WEB項(xiàng)目控汉,添加兩個(gè)頁面分別命名為Test1和Test2笔诵,在Test1頁面中添加一個(gè)Button命名為btnLogin,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord姑子,在Test2頁面添加兩個(gè)Lable分別命名為lblUserName和lblPassWord乎婿,為Test1添加Button的Click()事件:
private void btnLogin_Click (object sender, System.EventArgs e)
{
Session["UserName"]=txtUserName.Text;
Session["PassWord"]=txtPassWord.Text;
Response.Redirect("Test2.aspx");
}
- 添加Test2頁面的Load()事件:
private void Page_Load (object sender, System.EventArgs e)
{
lblUserName.Text=Session["UserName"].ToString();
lblPassWord.Text=Session["Password"].ToString();
Session.Remove("UserName"); //清除Session
Session.Remove("PassWord"); //清除Session
}
- 把Test1設(shè)為起始頁,運(yùn)行項(xiàng)目在Test1頁面的文本框中輸入值后點(diǎn)擊按鈕街佑,就可以在Test2頁面中顯Test1頁面輸入的結(jié)果谢翎。
五捍靠、Application對(duì)象變量:
Application對(duì)象的作用范圍是整個(gè)全局,也就是說對(duì)所有用戶都有效森逮。其常用的方法用Lock和UnLock榨婆,例如:
新建一個(gè)WEB項(xiàng)目,添加兩個(gè)頁面分別命名為Test1和Test2褒侧,在Test1頁面中添加一個(gè)Button命名為btnLogin良风,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord,在Test2頁面添加兩個(gè)Lable分別命名為lblUserName和lblPassWord闷供,為Test1添加Button的Click()事件:
private void btnLogin_Click (object sender, System.EventArgs e)
{
Application["UserName"] = txtUserName.Text;
Application["PassWord "] = txtPassWord.Text;
Server.Transfer("Test2.aspx");
}
- 添加Test2頁面的Load()事件:
private void Page_Load (object sender, System.EventArgs e)
{
Application.Lock();
lblUserName. Text = Application["UserName"].ToString();
lblPassWord. Text =
Application["PassWord "].ToString();
Application.UnLock();
}
- 把Test1設(shè)為起始頁烟央,運(yùn)行項(xiàng)目在Test1頁面的文本框中輸入值后點(diǎn)擊按鈕,就可以在Test2頁面中顯Test1頁面輸入的結(jié)果歪脏。
以上為個(gè)人意見疑俭,如有雷同,純屬巧合婿失,歡迎大家多提意見钞艇!Bey 了 個(gè) Bey ~