關於在asp.net的web頁面中的全局變量問題


在asp.net的web頁面中是不是沒有全局變量?
有的,在Class類內部的都是,只不過在WebWofm程式中跟WinForm和Console程式有些區別,
當頁面刷新時,它們的值不會保持,依然會再次初始化.
Q:在WebForm中,一般用ViewState輔助存儲全局變量的值.

是不是只能用session,cookie等來實現全局變量?
Q:用ViewState

web頁面中的static變量是不是全局變量?使用static變量發現總出問題,有時正常,有時異常一何緣故?
Q:是全局變量,但最好不要用,在分布式程序中,如果幾個客戶端都在訪問同一個界面,則
這些界面中的static類型的對象都是共享的,也就是說一個客戶端此時修改了本界面中的static
對象的值,其它用戶界面中的static值也會跟着改變. 會導致不可預料的情況發生

session一定要在global.asx中初始化定義嗎?
Q:Session存儲在服務端,當客戶端第一個界面啟動時,它就產生了,可以在所有頁面中用.
  具體用法請看:
  幾種常用的變量:
Application是應用程序級變量,如果用到多個用戶之間的通信的時候用
Session    是用戶變量,一個用戶訪問多個頁面時可以保存數據到另一個頁面,只要此用戶不注銷就可以
ViewState  頁面變量,相當於頁面全局變量,但是一旦退出當前頁面,它就會丟失
 
用法:
如果有兩個人: 甲和已在同學訪問一個網站
1.
Sessin["UserID"] = "甲";//  表示只要甲不注銷,不文倫跳到哪個頁面,string str = Session["UserID"]都保存初始化時的數據,常用於在: Page_Load事件中,驗證身份
page_Load()
{
 if(Session["UserID"] == null || Session["UserID"] == "")
 {
   Response.Redirect("登錄頁面,重新登錄");
  }
  else
  {
     呈現出頁面
  }
}
2. 
Application["x"];
只要賦了值,如: Application["x"]; 則甲和已可以共享到此值,可以用於計數器,記錄站點訪問量
只要一個用戶登錄,則Application["x"] += 1;//加一個數,表示有個新用戶剛剛登錄
3.
 this.ViewState["y"] = "abcde";
 則表示在本頁面中,this.ViewState["y"] 值可以作為全局變量使用,只要不退出本頁面,
 包括刷新頁面,它都不會丟失
4.cookie
string a="a";
HttpCookie Cookie = new HttpCookie(a);
Cookie.Values.Add(a,"abc");
// 設置過期時間.
DateTime datCookie = DateTime.Now;
int intCookieTimeOut = 30;
TimeSpan tsCookie = new TimeSpan(intCookieTimeOut,0,0,0);
Cookie.Expires =  datCookie.Add(tsCookie);
try
{
Response.Cookies.Remove(a);
}
catch{}
Response.Cookies.Add(Cookie);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM