一隔心、QueryString傳值:
** 這是最簡單的傳值方式椅贱,但缺點(diǎn)是傳的值會(huì)顯示在瀏覽器的地址欄中且不能傳遞對象怀跛,只適用于傳遞簡單的且安全性要求不高的整數(shù)值萍丐,例如:**
- 新建一個(gè)WEB項(xiàng)目,添加一個(gè)頁面命名為Test1党涕,在頁面中添加一個(gè)Button命名為btnLogin烦感,再添加兩個(gè)TextBox分別命名為txtUserName和txtPassWord,添加Button的Click()事件:
private void btnLogin_Click(object sender, System.EventArgse){
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()事件:
var define = "{name: 'Michael ',email: '17bity@gmail.com '} ";
var data = eval( '( ' + define + ') ');
alert(data.name);
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對象變量:
** Cookie是針對每一個(gè)用戶而言的晨抡,是存放在客戶端的 ,Cookie的使用要配合ASP.NET內(nèi)置對象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對象變量:
** Session也是針對每一個(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對象變量:
Application對象的作用范圍是整個(gè)全局,也就是說對所有用戶都有效帝雇。其常用的方法用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é)果。