我收到此错误,不确定原因。请帮忙,这很紧急。
更新
if (flights.Count() >= 1)
{
int count = flights.Count();
lblNumResults.Text = count.ToString();
gvAvailableFlights.DataSource = flights;
gvAvailableFlights.DataBind();
}
'/ WebSite3'中的服务器错误 应用。值不能为空。 参数名称:element描述: 在此期间发生了未处理的异常 当前网络的执行 请求。请查看堆栈跟踪 有关错误的更多信息 它起源于代码。
异常详细信息: System.ArgumentNullException:Value 不能为空。参数名称: 元件
来源错误:
生成此内容的源代码 未处理的异常只能显示 在调试模式下编译时。启用 这个,请按照以下其中一个 步骤,然后请求URL:
- 醇>
在生成的文件的顶部添加“Debug = true”指令 错误。例如:
<%@ Page Language =“C#”Debug =“true” %GT;
或:
2)将以下部分添加到 您的配置文件 应用程序:
请注意,第二种技术会 导致给定的所有文件 应用程序在debug中编译 模式。第一种技术将导致 只有那个特定的文件 在调试模式下编译。
重要:在中运行应用程序 调试模式确实会产生一个问题 内存/性能开销。您 应该确保申请 以前调试已禁用 部署到生产场景中。
堆栈追踪:
[ArgumentNullException:值不能 是空的。参数名称:element]
System.Xml.Linq.XElement.op_Explicit(的XElement 元素)+116474
searchresult.b__1d(的XElement f)+64
System.Linq.WhereSelectEnumerableIterator2.MoveNext() +151 System.Linq.Enumerable.Count(IEnumerable
1 来源)+201
searchresult.FillAvailableFlightsGridView() +721 searchresult.Page_Load(Object sender,EventArgs e)+37
错误帮助(IntPtr的 fp,Object o,Object t,EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object 发件人,EventArgs e)+35
System.Web.UI.Control.OnLoad(EventArgs的 e)+91
System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+2207版本信息:Microsoft .NET 框架版本:4.0.30319; ASP.NET 版本:4.0.30319.1
答案 0 :(得分:2)
在您的代码中,您有一个名为FillAvailableFlightsGridView
的函数,在该函数中,您调用某些集合的Count()
为空。
在调用Count()
之前检查它是否为空,在这种情况下,假设零长度或做任何你想要的处理。
例如:
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()
两次,因为您看到它包含的内部代码可能很重。
答案 1 :(得分:0)
改变这个:
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();
}