C# 字段类必须是选择多个下拉列表时的数字

C# 字段类必须是选择多个下拉列表时的数字,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在装订下拉列表 模型侧 public Registration() { Availableclass = new List<SelectListItem>(); } [Display(Name = "Class")] [Required(ErrorMessage = "Please Select {0}.")] public Nullable<int> ClassId { get; set

我正在装订下拉列表

模型侧

public Registration()
    {            
        Availableclass = new List<SelectListItem>();
    }
    [Display(Name = "Class")]
    [Required(ErrorMessage = "Please Select {0}.")]
    public Nullable<int> ClassId { get; set; }
    public IList<SelectListItem> Availableclass { get; set; }  
但当我在下拉列表中选择Multiple时,它会显示验证,因为field类必须是一个数字


我如何摆脱此验证,并让我知道如何在控制器端传递下拉列表的多个选择数据

当前您的属性类型是可为null的int,它可以存储
null
或单个int值

使用
DropDownListFor
时,它会生成客户端验证所需的数据属性,以验证单个数字值。对于多选控件,所选值将是(所选值的)数组,因此会得到错误

对于multi-select,属性应为集合类型

public int?[] ClassId { get; set; }
我认为没有任何理由在这种情况下使用nullable int,因为它是一个集合。可以使用不可为null的int

public int[] ClassIds{ get; set; }
public int?[] ClassId { get; set; }
public int[] ClassIds{ get; set; }