序列不包含任何元素,即使它包含
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
,您没有在默认项目中对其进行初始化。
我有一个 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
,您没有在默认项目中对其进行初始化。