我有下面的代码,我试图访问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..
}
}
答案 0 :(得分: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