序列不包含任何元素,即使它包含

Sequence contains no elements even though it does

我有一个 IEnumerable<SelectListItem> Runs,但它在我看来是 Sequence contains no elements。 我添加了一个 DefautIfEmpty() 来防止这种情况:

 var defaultListItemRow = table.NewRow();
            defaultListItemRow["description"] = "Er zijn geen runs beschikbaar om te kiezen";
            defaultListItemRow["runguid"] = Guid.Empty;

            model.Runs =
            from row in table.AsEnumerable().DefaultIfEmpty(defaultListItemRow)
            select new SelectListItem
            {
                Selected = false,
                Text = row["description"].ToString(),
                Value = row["runguid"].ToString()
            };

在视图中,我使用 HTMLHelper 创建自定义下拉菜单:

  @Html.FabricDropDownListFor(model => model.Runs, Model.Runs, htmlAttributes: new { @class = "ms-Dropdown-select", @style = "width: 100px;" }, label: "Billing-run", choosetext: "Selecteer een run...")

这包含一个非空的 MvcHtmlString 并包含默认项。

正如您在打印屏幕中看到的那样 Model.Runs.Max() returns 一个符合预期的 SelectListItem。 但它仍然会抛出具有以下堆栈跟踪的 Sequence contains no elements

   at System.Linq.Enumerable.Max[TSource](IEnumerable`1 source)
   at System.Linq.Enumerable.Max[TSource,TResult](IEnumerable`1 source, Func`2 selector)
   at ASP._Page_Views_Cloudbilling_VPS_Overzicht_cshtml.Execute() in D:\home\site\wwwroot\Views\Cloudbilling\VPS_Overzicht.cshtml:line 21
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)

我没主意了,谁有?

在具有 Max 异常的视图中,您使用的是不同的模型 属性:

Model.CustomerRuns

默认后备项目应用于 Model.Runs 属性。

除此之外,Max 选择了 RunDate,您没有在默认项目中对其进行初始化。