2011-06-02 106 views
-3

可能重复:
System.NullReferenceException: Object reference not set to an instance of an objectSystem.NullReferenceException:对象不设置到对象的实例

看看我的代码

if (ViewState["Edit"].ToString() == "new") { 
} 
else { 
     row = _section.GetBannerEntry(ViewState["Edit"].ToString()); 
} 

我得到的这条线上的错误if (ViewState["Edit"].ToString() == "new")我用if (ViewState["Edit"] != null && ViewState["Edit"].ToString() == "new")替换它的工作原理。

现在我在这里得到同样的错误在else row = _section.GetBannerEntry(ViewState["Edit"].ToString());

请帮助

+1

问什么了有效的是同样的问题,一遍又一遍不良好的堆栈溢出礼仪并吸引不必要的标志注意。你已经被告知了好几次'_section'还没有被其他用户的答案初始化。这应该足以说明你的代码失败的原因了吗?你也没有提供任何解释'_section'如何被初始化(如果有的话)的代码,哪一个也没有帮助。谢谢。 – Kev 2011-06-02 12:34:53

回答

0

好,无论是的ViewState为空或的ViewState [ “编辑”]是返回空...

0
if (ViewState["Edit"] != null && ViewState["Edit"].ToString() == "new") { 

或者如果视图状态中的内容是字符串,则应该可以工作:

if ((string)ViewState["Edit"] == "new") { 
2

您的视图状态是空 检查

if(ViewState["Edit"]!= null) 
{ 
if (ViewState["Edit"].ToString() == "new") 
} 
1

如果ViewState["Edit"]尚未设置,.ToString()会抛出异常。

尝试其中之一:

  • if (ViewState["Edit"]!= null && ViewState["Edit"].ToString() == "new") //最好的一个
  • if (ViewState["Edit"] + "" == "new")
0

尝试

protected void btnSaveDetails_Click(object sender, EventArgs e) 
{   
DataRow row = null;   
if (ViewState["Edit"] != null && ViewState["Edit"].ToString() == "new") 
{ 
} 
} 
+1

将您认为正确的答案标记为已接受。 – 2011-06-02 10:57:41

相关问题