C# 我需要一个下拉列表来显示活动案例的列表,但当返回多个案例时,我会不断收到错误
我需要一个下拉列表来显示当前的一组活动案例,但每当它返回多个案例时,我就会收到一个错误。代码如下所示:C# 我需要一个下拉列表来显示活动案例的列表,但当返回多个案例时,我会不断收到错误,c#,asp.net,linq,nullreferenceexception,C#,Asp.net,Linq,Nullreferenceexception,我需要一个下拉列表来显示当前的一组活动案例,但每当它返回多个案例时,我就会收到一个错误。代码如下所示: masterCaseList.DataSource = MasterCasesBLL.GetAllMasterCases(false) .Where(x => x.MainContact.MainContact == true) .Select(x => new { MainContact = x.MainContact.MainContactLabel, inde
masterCaseList.DataSource = MasterCasesBLL.GetAllMasterCases(false)
.Where(x => x.MainContact.MainContact == true)
.Select(x => new { MainContact = x.MainContact.MainContactLabel, index = x.ID })
.ToList();
masterCaseList.DataValueField = "index";
masterCaseList.DataTextField = "MainContact";
masterCaseList.DataBind();
我得到的错误是:
System.NullReferenceException:对象引用未设置为
对象的实例。在PCM_UI.manageReferrals.b__2(案例到x)中
c:\Users\Public\Documents\PathFinder案例
Manager\PCM.UI\pages\manageReferrals.aspx.cs:第33行
System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()位于
系统.Collections.Generic.List
1..ctor(IEnumerable1 collection)位于
System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source)位于
PCM_UI.manageReferrals.Page_加载(对象发送方,事件参数e)
c:\Users\Public\Documents\PathFinder案例
Manager\PCM.UI\pages\manageReferrals.aspx.cs:第33行
您应该尝试在查询中添加以下内容:
masterCaseList.DataSource = MasterCasesBLL.GetAllMasterCases(false)
.Where(x => x.MainContact != null && x.MainContact.MainContact == true)
.Select(x => new { MainContact = x.MainContact.MainContactLabel, index = x.ID })
.ToList();
当ToList方法强制迭代时,您似乎有一个空引用。可否
x.MainContact
为空?如果是这样,x.MainContact.MainContact
将出错。它本不应该返回空值,但出于某种原因,我猜它是.OMG!成功了!非常感谢你!现在我已经有了所有活动案例的列表,我可以继续工作了。在过去的几天里,我被困在这里将近10个小时。再次感谢!但奇怪的是,它返回的值为空。从中获取信息的表中没有任何空数据。但是,哦,好吧,我现在不抱怨它的工作。谢谢很高兴能帮助@ChrisHansen,那么你能标记为正确答案吗?=)这是你贴的东西旁边的复选标记吗??这是我第一次来这里,所以我是个新手哈哈。是的,是的,tnx…=)您可以尝试在不使用Select扩展名的情况下,仅引入一个单独的查询,查询MainContact为null的记录。这可能是GetAllMasterCases方法的一个问题。