2010-11-15 79 views
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); 
    } 

如果您有任何想法,請幫助...這讓我瘋狂。

回答

0

我得到這個由前行重新填充在後的操作方法下拉控制工作:

返回查看(模型);