会话解压缩问题

时间:2011-05-20 11:03:06

标签: asp.net

我对此代码有一些问题:

    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

1 个答案:

答案 0 :(得分:0)

“control”是此特定页面的特定实例的引用

每次请求都会重新创建页面,因此对旧控件实例的引用不再有效。因此,不要将控件存储在比单个请求更长的任何内容(Session,ViewState,静态字段)中。您网页的本地(实例)字段是安全的。