2

我有下面的代码,并试图访问 lnkSave_Click 函数中的“文本”字符串,但文本似乎无法从 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..
            }
        }
4

1 回答 1

6

当它为空时,它可访问的。它总是为空的原因是它是一个字段。ASP.NET 页面中的每个对象都在生命周期结束时被释放。所以它会""在每次回发时被初始化。

您可以使用 ViewState 来保存值:

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

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

于 2013-02-10T20:59:17.810 回答