⼀、QueryString传值:
1. 这是最简单的传值⽅式,但缺点是传的值会显⽰在浏览器的地址栏中且不能传递对象,只适⽤于传递简单的且安全性要求不⾼的整数值,例如:
2. 新建⼀个WEB项⽬,添加⼀个页⾯命名为Test1,在页⾯中添加⼀个Button命名为btnLogin,再添加两个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);}
3. 添加另⼀个页⾯命名为Test2,在页⾯添加两个Lable分别命名为lblUserName和lblPassWord,添加页⾯的Load()事件:private void Page_Load (object sender, System.EventArgs e){
lblUserName.Text=Request.QueryString[\"UserName\"];lblPassWord.Text=Request.QueryString[\"Password\"];}
4. 把Test1设为起始页,运⾏项⽬在Test1页⾯的⽂本框中输⼊值后点击按钮,就可以在Test2页⾯中显Test1页⾯输⼊的结果。
⼆、Server.Transfer传值:
1. 这种⽅式避免了要传递的值显⽰在浏览器的地址栏中,但是⽐较⿇烦,例如:
2. 新建⼀个WEB项⽬,添加两个页⾯分别命名为Test1和Test2,在Test1页⾯中添加⼀个Button命名为btnLogin,再添加两个TextBox分别命名为txtUserName和txtPassWord,在Test2页⾯添加两个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\");
}
3. 添加Test2页⾯的Load()事件:
private void Page_Load (object sender, System.EventArgs e){
Test1 t1; //创建原始窗体的实例
t1=( Test1)Context.Handler; //获得实例化的句柄lblUserName.Text= t1.UserName;lblPassWord.Text= t1.Password;}
4. 把Test1设为起始页,运⾏项⽬在Test1页⾯的⽂本框中输⼊值后点击按钮,就可以在Test2页⾯中显Test1页⾯输⼊的结果。
三、Cookie对象变量:
1. Cookie是针对每⼀个⽤户⽽⾔的,是存放在客户端的 ,Cookie的使⽤要配合ASP.NET内置对象Request来使⽤,例如:
2. 新建⼀个WEB项⽬,添加两个页⾯分别命名为Test1和Test2,在Test1页⾯中添加⼀个Button命名为btnLogin,再添加两个TextBox分别命名为txtUserName和txtPassWord,在Test2页⾯添加两个Lable分别命名为lblUserName和lblPassWord,为Test1添加Button的Click()事件:
private void btnLogin_Click (object sender, System.EventArgs e){
HttpCookie 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\");}
3. 添加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();}
4. 把Test1设为起始页,运⾏项⽬在Test1页⾯的⽂本框中输⼊值后点击按钮,就可以在Test2页⾯中显Test1页⾯输⼊的结果。
四、Session对象变量:
1. Session也是针对每⼀个⽤户⽽⾔的,是存放在服务器端的 ,Session不仅可以把值传递到下⼀个页⾯,还可以交叉传递到多个页⾯,直⾄把Session变量的值removed 后,变量才会消失,例如:
2. 新建⼀个WEB项⽬,添加两个页⾯分别命名为Test1和Test2,在Test1页⾯中添加⼀个Button命名为btnLogin,再添加两个TextBox分别命名为txtUserName和txtPassWord,在Test2页⾯添加两个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\");}
3. 添加Test2页⾯的Load()事件:
private void Page_Load (object sender, System.EventArgs e){
lblUserName.Text=Session[\"UserName\"].ToString();lblPassWord.Text=Session[\"Password\"].ToString();Session.Remove(\"UserName\"); //清除SessionSession.Remove(\"PassWord\"); //清除Session}
4. 把Test1设为起始页,运⾏项⽬在Test1页⾯的⽂本框中输⼊值后点击按钮,就可以在Test2页⾯中显Test1页⾯输⼊的结果。
五、Application对象变量:
1. Application对象的作⽤范围是整个全局,也就是说对所有⽤户都有效。其常⽤的⽅法⽤Lock和UnLock,例如:
2. 新建⼀个WEB项⽬,添加两个页⾯分别命名为Test1和Test2,在Test1页⾯中添加⼀个Button命名为btnLogin,再添加两个TextBox分别命名为txtUserName和txtPassWord,在Test2页⾯添加两个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\");}
3. 添加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();}
4. 把Test1设为起始页,运⾏项⽬在Test1页⾯的⽂本框中输⼊值后点击按钮,就可以在Test2页⾯中显Test1页⾯输⼊的结果。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务