2014-01-23 52 views
0

我有一个精灵控制,我有这样的代码属性走空,

protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e) 
    { 
     if (Wizard1.ActiveStepIndex == 0) 
     { 
      if (firstName != null && lastName != null) 
      { 
       Wizard1.ActiveStepIndex = 1; 
      } 
      else 
      { 
       e.Cancel = true; 
      } 
     } 
    } 

当代码到达名字和姓氏它们都为null,我已经在上面的一个方法中填充了它们,在这个事件触发之前它们不是空的。我的搜索只能让我对事件进行验证,这是罪魁祸首吗?

回答

2

除非将它们存储在ViewState或Session或Database中,否则属性将在回发中丢失。

例如ViewState

public string Firstname{ 

    get { 

return ViewState["Firstname"] == null ?String.Empty :(string)ViewState["Firstname"]; 

    } 
    set { ViewState["Firstname"] = value; } 
} 
+0

我没有意识到页面发布回来,谢谢。接受答案。 –

+0

实际上有一个问题,为什么返回一个空字符串而不是null?我宁愿在某个地方抛出一个NPE,然后让一个空白字符串等不良数据进入数据库。 –

+0

是的,你可以返回任何默认值,没有任何特殊原因使用String.Empty – gbs