1.QuerySting在頁面間傳遞值
這種方法的寫法:在要傳遞值的頁面,Response.Redirect(url),值包含在在url中。接收值得頁面,Request.QueryString["變量名"]。
這是使用起來很簡單的一種方式,但是它不是很安全,因為值會在瀏覽器里的地址欄里顯示。並且它也不能傳遞對象,對長度也有限制,如果要傳遞的值很多,且對安全要求也高的話,這種方式就不適合了。
2.Session變量
我們通常在一個頁面中,將值放到session變量中,在另外幾個頁面使用它。Session變量存儲過多的數據會消耗比較多的服務器資源,在使用時應該慎重。通常將登陸的用戶名和密碼防到session中,其他頁面根據判斷session中用戶名和密碼是否有值來判斷用戶是否登錄。
寫法:存入到session變量,Session["name"]=“要放入的值”;讀取session中的值,變量名=Session["name"].ToString();
3.Cookie對象變量
Cookie對象變量和session一樣,他們不同的是,session是存在服務器端,而cookie是存放在客戶端的。
寫法:將值存入到cookie中
HttpCookie userName=new HttpCookie("name");
userName.Value = "值";
Response.AppendCookie(userName);
讀取cookie中的值
變量名 = Request.Cookies["userName"].Value.ToString();
4.使用Application 對象變量
Application對象的作用范圍是整個全局,他對所有用戶都有效,session和cookie是對一個用戶而言,所以我們可以用它統計登陸該網站的人數。Application變量不會自己消亡,會始終占據內存,創建過多的變量會降低響應速度,只有在服務被中止、Global.asa被改變或者該Application被卸載下才會被終止。
寫法:將值存入到application中, Application["name"] = "值";
讀取值,變量名= Application["name"].ToString();
上面是我常用到的幾種方式,當然還有其他方式。還有利用某些控件的PostBackUrl屬性,使用Server.Transfer,使用@PreviousPageType指令,這些暫時沒用過,在以后會試着用,用的多了就會有對比,就能知道在什么場合更適合哪種方式。