我对此代码有一些问题:
private void BoxVisibility(bool email, bool link, Control linkButton)
{
mainEmail.Visible = email;
foreach (Control c in PlaceHolder1.Controls)
{
c.Visible = false;
}
if (linkButton != null)
{
PlaceHolder1.Visible = true;
linkButton.Visible = link;
}
}
当我发送到方法控件时,一切正常,但是一开始我把控件放在Session['temp'] = Control
中,然后在这种情况下调用类似BoxVisibility(false, true, (Control) this.Session['temp'])
的方法Control linkButton.Visible = link;
不采取true
,他仍然是false
。
答案 0 :(得分:0)
“control”是此特定页面的特定实例的引用。
每次请求都会重新创建页面,因此对旧控件实例的引用不再有效。因此,不要将控件存储在比单个请求更长的任何内容(Session,ViewState,静态字段)中。您网页的本地(实例)字段是安全的。