0
我用來獲取試圖創建下拉控件與需要現場確認時,這條消息:MVC2下拉驗證問題
具有關鍵「SelectedNCRType」的類型「System.Int32」 的ViewData的項目,但必須是「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);
}
如果您有任何想法,請幫助...這讓我瘋狂。