C#和ASP-在单击按钮时保留变量值

C#和ASP-在单击按钮时保留变量值,c#,asp.net,C#,Asp.net,我正在为另一个人的网站开发一个警告系统。前提非常简单,如果满足条件并将warningFlag变量设置为“”,则会发出警告并将warningFlag变量设置为“Y” 但是,它从不保留该值,并且总是触发警告。我尝试过ViewState,但它不起作用。有点困惑为什么它不能工作,因为ViewState应该做到这一点。也许我错过了什么?你能帮助一个ASP初学者吗 页面加载 if (ViewState["warningFlag"] == null) ViewState.Add("warningFla

我正在为另一个人的网站开发一个警告系统。前提非常简单,如果满足条件并将warningFlag变量设置为“”,则会发出警告并将warningFlag变量设置为“Y”

但是,它从不保留该值,并且总是触发警告。我尝试过ViewState,但它不起作用。有点困惑为什么它不能工作,因为ViewState应该做到这一点。也许我错过了什么?你能帮助一个ASP初学者吗

页面加载

if (ViewState["warningFlag"] == null)
    ViewState.Add("warningFlag", ""); //Add the flag
else
    ViewState["warningFlag"] = ""; //Reset the flag
按钮点击事件

if (ViewState["warningFlag"].ToString() == "")
{
    if (this.checkForWarning()) //Checks if Warning conditions are met
    {
        ViewState["warningFlag"] = "Y";

        //Warning Message Code goes here
        return;
    }
}

第2、4行正在做相同的事情(不是100%,但最终结果相同)

如果要停止获取警告,请执行以下操作:

if (ViewState["warningFlag"] == null)
    ViewState.Add("warningFlag", "");  
else
    ViewState["warningFlag"] = "x"; //<-------- see this

但是,如果您只希望在单击按钮时警告不再出现,该怎么办?
if (ViewState["warningFlag"] == null)
    ViewState.Add("warningFlag", "");  
else
    ViewState["warningFlag"] = "x"; //<-------- see this
if (ViewState["warningFlag"] == null)
    ViewState.Add("warningFlag", ""); //Add the flag
else

if (ViewState["warningFlag"].ToString() !="Y")
     ViewState["warningFlag"] = ""; //Reset the flag