Нет элемента ViewData типа "IEnumerable<SelectListItem>", который имеет ключ "CompPlanTypeId"
Я застрял на том, почему это ошибка. Если я удаляю тег div, содержащий план Comp, он работает просто отлично.
<div id="tabs-1">
<form id="importForm">
<div id="required">
<div>
<label class="OptionLabel">Comp Plan:</label>
@*// TODO: suspect this next line is causing problems*@
@Html.DropDownListFor(model => model.CompPlanTypeId, (IEnumerable<SelectListItem>)ViewBag.CompPlanList)
</div>
<div>
<label class="OptionLabel">System:</label>
@Html.DropDownListFor(model => model.SystemId, (IEnumerable<SelectListItem>)ViewBag.SystemList)
</div>
<div>
<label class="OptionLabel">Month:</label>
@Html.DropDownListFor(model => model.Month, (SelectList)ViewBag.MonthList)
</div>
<div>
<label class="OptionLabel">Year:</label>
@Html.DropDownListFor(model => model.Year, (SelectList)ViewBag.YearList)
</div>
</div>
здесь:
public ActionResult Index()
{
ViewBag.Title = Text.Import;
ViewBag.MonthList = MonthList;
ViewBag.YearList = YearList;
ViewBag.SystemList = GetSystemList();
ViewBag.CompPlanList = GetCompPlanList();
ViewBag.Message = "";
ViewBag.MessageType = "";
return View();
}
ViewBag.CompPlanList имеет значение 2 элемента. Один, содержащий пустую строку, другой, содержащий раскрывающееся значение.
Вот трассировка стека.
[InvalidOperationException: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'CompPlanTypeId'.]
System.Web.Mvc.Html.SelectExtensions.GetSelectData (HtmlHelper htmlHelper, имя строки) +392896
System.Web.Mvc.Html.SelectExtensions.SelectInternal(HtmlHelper htmlHelper, строка StringLabel, имя строки, IEnume1 selectList, Boolean allowMultiple, IDictionary
2 htmlAttributes) +137 System.Web.Mvc.Html.SelectExtensions.DropDownListFor (HtmlHelper1 htmlHelper, Expression
1 выражение, IEnumerable1 selectList, String optionLabel, IDictionary
2 htmlAttributes) +35 System.Web.Mvc.Html.SelectExtensions.DropDownListFor (HtmlHelper1 htmlHelper, Expression
1 выражение, IEnumerable`1 selectList) +60
ASP._Page_Views_Import_Index_cshtml.Execute() в c:\WIP\CompensationAudit\src\WebLibrary\Views\Import\Index.cshtml:28