2013-02-10 45 views
2

我有下面的代碼,並試圖訪問lnkSave_Click函數中的'文本'字符串,但文本似乎不能從lnkSave_Click函數訪問,它似乎總是空的。c#公共字符串傳遞到函數

private string _text = ""; 
    public string text 
    { 
     get { return _text; } 
     set { _text = value; } 
    } 


protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
      text = "Hello World!"; 
      } 
     } 

protected void lnkSave_Click(object sender, EventArgs e) 
     { 
      if (text == "Hello World!") 
      { 
      ... do things.. 
      } 
     } 

回答

6

當它是空的它訪問。它總是空的原因是它是一個領域。 ASP.NET頁面中的每個對象都位於生命週期的末尾。所以每回發一次就會初始化爲""

您可以使用ViewState中堅持價值:

public string text 
{ 
    get { if(ViewState["text"]==null)ViewState["text"]=""; return (String)ViewState["text"]; } 
    set { ViewState["text"] = value; } 
} 

Nine Options for Managing Persistent User State in Your ASP.NET Application