谁能告诉我到底哪儿错了?

时间:2022-12-28 10:27:29
[NullReferenceException: Object reference not set to an instance of an object.]
   Xinchen.WebSite.Views.<>c__DisplayClass7.<Page_Load>b__2(String y) +105
   System.Linq.WhereArrayIterator`1.MoveNext() +55
   System.Linq.Enumerable.Count(IEnumerable`1 source) +201
   Xinchen.WebSite.Views.Search.<Page_Load>b__1(ArticleModel x) +172
   System.Linq.WhereListIterator`1.MoveNext() +58
   System.Linq.Buffer`1..ctor(IEnumerable`1 source) +325
   System.Linq.<GetEnumerator>d__0.MoveNext() +96
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +327
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   Xinchen.WebSite.Views.Search.Page_Load(Object sender, EventArgs e) +801
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

到底哪儿错了?
看不懂,加号到底什么意思?
本地是正常的,服务器上挂了

11 个解决方案

#1


数据有空值

#2


我检查不出来啊···

#3


未将对象引用设置到对象实例。

在某个null对象上   点  了 属性或方法。

大概在Page_Load的某个循环里面。

#4


现在知道哪儿错了

resultArticle = articleEntity.Objects.Where(x =>
                {
                    if ((keyWords.Where(y => x.Title.ToUpper().Contains(y) || x.Content.ToUpper().Contains(y)).Count() > 0) && ((DateTime.Now - x.EditTime).TotalHours <= hours || hours == 0))
                    {
                        resultCount++;
                        return true;
                    }
                    return false;
                });
                title.InnerText = HtmlHelper.Encode(keyWord) + " - 搜索结果 - 馨辰网";
                PagedDataSource pageDataSource = new PagedDataSource();
                pageDataSource.PageSize = 10;
                pageDataSource.DataSource = resultArticle.OrderByDescending(x => x.EditTime).ToList();//这句在ToList()这一步挂了,但在本地没有问题

#5


空值引用了嘛,断点调试下

#6


引用 5 楼  的回复:
空值引用了嘛,断点调试下

ToList()是系统方法啊,怎么调试?我把ToList()去掉的话就会提示另外一个错误了,必须转换为List才行

#7


现在换成foreach遍历resultArticle也出错了,也还是不知道是哪儿错了。本地没有问题

#8


解决了,结贴

#9


绑定前先判断resultArticle是不是空,然后再ToList();

#10


pageDataSource.DataSource = resultArticle.OrderByDescending(x => x.EditTime).ToList();//这句在ToList()这一步挂了,但在本地没有问题
可能 resultArticle在生产环境是为NULL值导致异常。

#11


Linq.where总是会返回一个List,resultArticle不会为null
错误在这儿,把代码一点一点地删除掉才检查出来
keyWords.Where(y => x.Title.ToUpper().Contains(y) || x.Content.ToUpper().Contains(y)).Count() 

这儿改成
keyWords.Where(y => x.Title.ToUpper().Contains(y) || (x.Content==null?"":x.Content).ToUpper().Contains(y)).Count() 

问题解决

#1


数据有空值

#2


我检查不出来啊···

#3


未将对象引用设置到对象实例。

在某个null对象上   点  了 属性或方法。

大概在Page_Load的某个循环里面。

#4


现在知道哪儿错了

resultArticle = articleEntity.Objects.Where(x =>
                {
                    if ((keyWords.Where(y => x.Title.ToUpper().Contains(y) || x.Content.ToUpper().Contains(y)).Count() > 0) && ((DateTime.Now - x.EditTime).TotalHours <= hours || hours == 0))
                    {
                        resultCount++;
                        return true;
                    }
                    return false;
                });
                title.InnerText = HtmlHelper.Encode(keyWord) + " - 搜索结果 - 馨辰网";
                PagedDataSource pageDataSource = new PagedDataSource();
                pageDataSource.PageSize = 10;
                pageDataSource.DataSource = resultArticle.OrderByDescending(x => x.EditTime).ToList();//这句在ToList()这一步挂了,但在本地没有问题

#5


空值引用了嘛,断点调试下

#6


引用 5 楼  的回复:
空值引用了嘛,断点调试下

ToList()是系统方法啊,怎么调试?我把ToList()去掉的话就会提示另外一个错误了,必须转换为List才行

#7


现在换成foreach遍历resultArticle也出错了,也还是不知道是哪儿错了。本地没有问题

#8


解决了,结贴

#9


绑定前先判断resultArticle是不是空,然后再ToList();

#10


pageDataSource.DataSource = resultArticle.OrderByDescending(x => x.EditTime).ToList();//这句在ToList()这一步挂了,但在本地没有问题
可能 resultArticle在生产环境是为NULL值导致异常。

#11


Linq.where总是会返回一个List,resultArticle不会为null
错误在这儿,把代码一点一点地删除掉才检查出来
keyWords.Where(y => x.Title.ToUpper().Contains(y) || x.Content.ToUpper().Contains(y)).Count() 

这儿改成
keyWords.Where(y => x.Title.ToUpper().Contains(y) || (x.Content==null?"":x.Content).ToUpper().Contains(y)).Count() 

问题解决