Раньше я получал это сообщение при попытке создать раскрывающиеся элементы управления с обязательной проверкой полей:
Элемент ViewData, имеющий ключ 'SelectedNCRType', имеет тип 'System.Int32', но должен иметь тип'IEnumerable'.
Каким-то образом мне удалось заставить все работать на моей локальной машине, и все выглядело хорошо.Однако, когда я опубликовал проект и скопировал файлы на тестовый сервер, это сообщение снова появляется всякий раз, когда не удается выполнить проверку раскрывающихся элементов управления.Вот некоторые фрагменты кода:
View Model:
[DisplayName("NCR Type:")]
public IEnumerable<SelectListItem> NCRTypeSelectList
{
get;
set;
}
[Range(1, Int32.MaxValue, ErrorMessage = "Required Field")]
public int SelectedNCRType { get; set; }
Controller:
var types = (from x in context.NCRTypes
where x.Deleted == false
select new models.NCRType
{
Deleted = x.Deleted,
Id = x.Id,
Name = x.Name
}).ToList();
model.NCRTypeSelectList = types.ToSelectList("Id", "Name");
View:
<%= Html.DropDownListFor(x => x.SelectedNCRType, Model.NCRTypeSelectList, "Select...", new { @class = "form_dropdown_300" })%>
<%= Html.ValidationMessageFor(model => model.SelectedNCRType, "Required Field")%>
Helper Extension Method:
public static SelectList ToSelectList<T>(this IEnumerable<T> collection,
string dataValueField, string dataTextField)
{
return new SelectList(collection, dataValueField, dataTextField);
}
Если у вас есть идеи, пожалуйста, помогите ... это сводит меня с ума.