C# 复选框的会话状态始终计算为true

C# 复选框的会话状态始终计算为true,c#,asp.net,C#,Asp.net,我无法获取复选框的正确会话状态。如果选中该复选框,则该复选框必须为true;如果未选中,则该复选框必须为false。当它点击按钮click code中的if语句时,它的计算结果每次都为true。我知道我错过了一些简单的事情,但任何帮助都将不胜感激 在页面加载中: Session["FbAuth"] = false; 选中复选框时: protected void chkFbAuth_CheckedChanged(object sender, EventArgs e) {

我无法获取复选框的正确会话状态。如果选中该复选框,则该复选框必须为true;如果未选中,则该复选框必须为false。当它点击按钮click code中的if语句时,它的计算结果每次都为true。我知道我错过了一些简单的事情,但任何帮助都将不胜感激

在页面加载中:

Session["FbAuth"] = false;
选中复选框时:

protected void chkFbAuth_CheckedChanged(object sender, EventArgs e)
    {
        Session["fbAuth"] = chkFbAuth.Checked;
    }
在按钮上单击:

protected void btnFbAuth_Click(object sender, EventArgs e)
    {
        var fbAuth = (bool) Session["fbAuth"];
        if (fbAuth == true)
        {
            Session["fbAuth"] = false;
            CheckAuthorization();
        }
    }

需要激发您的
chkFbAuth\u CheckChanged
来设置会话变量。为此,需要进行回发。确保
chkFbAuth
具有
AutoPostBack=“True”
OnCheckChanged=“chkFbAuth\u CheckChanged”
在切换复选框时是否发生回发?否,查看以确保AutoPostBack和CausesValidation均为false。如果没有回发,则永远不会调用chkFbAuth\u CheckedChanged事件。