c#public string传入函数

Pet*_*eek 2 c# asp.net

我有下面的代码,我试图访问lnkSave_Click函数中的'text'字符串,但文本似乎无法从lnkSave_Click函数访问,它似乎总是空的.

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..
            }
        }
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 6

当它是空的时,它可访问的.它总是空的原因是它是一个领域.ASP.NET页面中的每个对象都在生命周期的末尾处理.因此它将""在每次回发时初始化.

您可以使用ViewState来保存值:

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

在ASP.NET应用程序中管理持久用户状态的九个选项