Asp.net mvc MVC2下拉式验证问题

Asp.net mvc MVC2下拉式验证问题,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,在尝试创建具有所需字段验证的下拉控件时,我通常会收到以下消息: 具有键“SelectedNCRType”的ViewData项的类型为“System.Int32” 但必须是“IEnumerable”类型 不知何故,我设法让所有东西都在我的本地机器上工作,一切看起来都很好。但是,当我发布项目并将文件复制到测试服务器时,每当下拉控件上的验证失败时,此消息再次出现。以下是一些代码片段: View Model: [DisplayName("NCR Type:")] public IEnumerable&l

在尝试创建具有所需字段验证的下拉控件时,我通常会收到以下消息:

具有键“SelectedNCRType”的ViewData项的类型为“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);
    }
视图模型:
[显示名称(“NCR类型:”)]
公共IEnumerable类型选择列表
{
得到;
设置
}
[范围(1,Int32.MaxValue,ErrorMessage=“必填字段”)]
public int SelectedNCRType{get;set;}
控制器:
变量类型=(来自context.NCRTypes中的x)
其中x.Deleted==false
选择新型号。NCRType
{
已删除=x.已删除,
Id=x.Id,
Name=x.Name
}).ToList();
model.NCRTypeSelectList=types.ToSelectList(“Id”、“Name”);
视图:
x、 SelectedNCRType,Model.ncrtype选择列表,“选择…”,新建{@class=“form_dropdown_300”})%>
model.SelectedNCRType,“必填字段”)%%>
助手扩展方法:
公共静态SelectList到SelectList(此IEnumerable集合,
字符串dataValueField、字符串dataTextField)
{
返回新的SelectList(collection、dataValueField、dataTextField);
}

如果你有任何想法,请帮助。。。这简直让我发疯。

我通过在行之前重新填充post-action方法中的下拉控件来实现这一点:

返回视图(模型)