Asp.net 为什么我得到这个元素空错误?
我得到了这个错误,不知道为什么。请帮忙,这很紧急 更新Asp.net 为什么我得到这个元素空错误?,asp.net,Asp.net,我得到了这个错误,不知道为什么。请帮忙,这很紧急 更新 if (flights.Count() >= 1) { int count = flights.Count(); lblNumResults.Text = count.ToString(); gvAvailableFlights.DataSource = flights; gvAvailableFlights.DataBin
if (flights.Count() >= 1)
{
int count = flights.Count();
lblNumResults.Text = count.ToString();
gvAvailableFlights.DataSource = flights;
gvAvailableFlights.DataBind();
}
“/WebSite3”中的服务器错误
应用值不能为null。
参数名称:元素描述:
期间发生未处理的异常
当前web的执行
要求请查看堆栈跟踪
有关错误的详细信息,请参见
以及它在代码中的起源
例外情况详情:
System.ArgumentNullException:值
不能为空。参数名称:
元素
源错误:
生成此文件的源代码
只能显示未处理的异常
在调试模式下编译时。使能
这个,请按照下面的一个
步骤,然后请求URL:
System.Xml.Linq.XElement.op_Explicit(XElement 元素)+116474
searchresult.b_uu1d(XElement f) +64
System.Linq.WhereSelectEnumerableIterator
2.MoveNext()
+151系统Linq.可枚举计数(IEnumerable
1
来源)+201searchresult.FillAvailableFlaghtsGridView() +721搜索结果。页面加载(对象发送者,事件参数)+37
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、对象o、对象t、事件参数e) +14 System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象 发送方,事件参数e)+35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint)+2207 版本信息:Microsoft.NET 框架版本:4.0.30319;ASP.NET 版本:4.0.30319.1
在代码中,有一个名为
FillAvailableFlightsGridView
的函数,在该函数中,调用某个空集合的Count()
在调用Count()
之前,请检查它是否为null,在这种情况下,假定长度为零或执行任何您想要的处理
例如:
int myCount = 0;
if (myCollection != null)
myCount = myCollection.Count();
编辑:在您的情况下,优化的代码将是:
int flightsCount = (flights == null) ? 0 : flights.Count();
if (flightsCount >= 1)
{
lblNumResults.Text = flightsCount.ToString();
gvAvailableFlights.DataSource = flights;
gvAvailableFlights.DataBind();
}
无需调用Count()
两次,因为它包含可能很重的内部代码。更改此选项:
if (flights.Count() >= 1)
{
int count = flights.Count();
lblNumResults.Text = count.ToString();
gvAvailableFlights.DataSource = flights;
gvAvailableFlights.DataBind();
}
为此:
if (flights != null && flights.Count() >= 1)
{
lblNumResults.Text = (string)flights.Count();
gvAvailableFlights.DataSource = flights;
gvAvailableFlights.DataBind();
}
15个问题,你还没有学会如何格式化你的帖子?如果你需要帮助,你必须给我们一些实际的代码。还请注意,发布.NET错误消息和堆栈跟踪不符合问题要求。尽管如此,如果正确,您正在尝试对空对象调用
.Count()
,从而导致错误。我有两个正在测试的XML文件,旧文件(包含较少的航班)似乎可以工作,而新文件则无法工作。奇怪的是,当我使用旧的xml运行该文件时,新的航班显示在下拉列表中。