当前位置: 代码迷 >> ASP.NET >> 请问:自定义控件中LoadPostData方法报NullReferenceException异常,虚拟IIS和IIS上反映不一致
  详细解决方案

请问:自定义控件中LoadPostData方法报NullReferenceException异常,虚拟IIS和IIS上反映不一致

热度:7454   发布时间:2013-02-25 00:00:00.0
请教:自定义控件中LoadPostData方法报NullReferenceException错误,虚拟IIS和IIS上反映不一致。
现在手里有一份公司以前同事开发的系统,用asp1.0做的,需要我维护。昨天遇到一个非常郁闷的问题:
客户说一个页面报错,我在代码中直接调试无错(VS2005),我发布网站给他,仍然有错,于是我用自己机子上的发布网站浏览发现错误,一个自定义控件中的一个方法
public virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection) 
{
  string sValue = this.Value;
  string sPostedValue = postCollection.GetValues(postDataKey)[0];
  if (sPostedValue != null && !sValue.Equals(sPostedValue))
  {
  this.Value = sPostedValue;
  return true;
  } 
  return false;
}
其中this是有值的就是我的控件,但是this.Value就报异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。postDataKey,postCollection也有值string sPostedValue = postCollection.GetValues(postDataKey)[0];也报同样的错误!
如果我在VS2005中直接运行是无错的(用虚拟IIS(使用默认的WEB服务器)),如果我用自己机子上的IIS浏览就会报错,在属性页上设置为自定义的WEB服务器也会报错!
谁知道怎么改??

------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
try
String postedValue = postCollection[postDataKey];
另外数据是什么?

------解决方案--------------------------------------------------------
够了
try
把value的值存在viewstate里

------解决方案--------------------------------------------------------
private ListItemCollection items; //这个也要保存状态
------解决方案--------------------------------------------------------
up
  相关解决方案