请教:自定义控件中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