下面的代码中的第25行如何生成下面的错误?我很困惑。ProductSuggestions为IEnumerable<Product> ProductSuggestions
Line 24: <%if (Model.ProductSuggestions != null) { %>
Line 25: <%if (Model.ProductSuggestions.Any()) { 对象引用未设置为对象的实例。
说明:当前web请求执行过程中发生未处理异常。请查看堆栈跟踪,以了解有关错误的更多信息以及错误在代码中的来源。
异常详细信息: System.NullReferenceException:未将对象引用设置为对象的实例。
发布于 2010-10-07 19:52:14
我很抱歉,但根据我给出的信息,这个问题不会很容易解决。
睡了一觉后,我突然意识到,即使我输入的列表是IEnumerable,它实际上仍然是一个IQueryable,因为它是如何从我的存储库中的LINQ查询中出来的。由于IQueryable的延迟执行,直到我在视图中的集合上调用.Count()或.Any(),这个问题才变得明显起来。
问题实际上出在存储库中,我的LINQ查询设置没有考虑到可能的NULL。
所以,答案应该是:你这个笨蛋,你确定你正在处理的是IEnumerable而不是IQueryable?如果这真的是一个IQueryable,您确定问题不是在LINQ查询本身,也不是在执行它的地方吗?:)
发布于 2010-10-07 06:59:21
你确定问题在25行而不是24行吗?尝试制作第24行
<%if (Model != null && Model.ProductSuggestions != null) { %>看看你是否会得到同样的错误。我猜你不会的。
发布于 2010-10-07 06:56:23
NullReferenceException可以引用ProductSuggestions对象的成员吗?
我最近遇到了一个问题,我检查父对象是否为空,但是当我试图访问任何子属性时,我就收到了NullReferenceException。
https://stackoverflow.com/questions/3877463
复制相似问题