ViewState等于null asp.net

时间:2015-02-11 13:46:24

标签: asp.net viewstate

我有下一个代码。

protected void Page_PreRender(object sender, EventArgs e)
{ 
  bool isDelayWarning = proxy.MerchantPaySystemSetting_IsHoldPaymentsAllow(clientID, PaySystem.Type));
  ViewState.Add("IsDelayWarning", isDelayWarning);
}

protected void btnSend_Click(object sender, EventArgs e)
{
  if ((bool)ViewState["IsDelayWarning"] && !cbxDelayConfirm.Checked)
  {
    this.CustomErrorMessage = Yandex_Term_Error;
    return;
  }
}

在btnSend_Click方法中ViewState [" IsDelayWarning"] = null。

我该如何解决这个问题?

谢谢! :)

2 个答案:

答案 0 :(得分:1)

我不确定你要采用的逻辑,但是在回放之前,在呈现页面之前会发生按钮推送。在两种方法中放置断点以查看它们的相对顺序。

You can see a diagram here

注意黄色标记的项目,控制事件处理就是其中之一,它严格发生在PreRender之前。

答案 1 :(得分:0)

您可以通过执行类似

的操作来检查空引用
if (something != null)
code ------

或其他方式如果您有时会使用null。例如,如果用户地址为空

if (thisuser.Address == null)
{
 thisuser.Address = new Address();
}
thisuser.Address = user.Address.City;