模型绑定器属性类型int的问题

时间:2011-09-25 22:20:06

标签: asp.net-mvc-3

在我的视图模型中,我有一个属性:

    [Required]
    [MaxLength(4)]
    [DisplayName("CVC")]
    public int BillingCvc { get; set; }

在我看来,我这样使用它:

@Html.TextBoxFor(x => x.BillingCvc, new { size = "4", maxlength = "4" })

当我发布表单时,我收到此错误消息:

Unable to cast object of type 'System.Int32' to type 'System.Array'.

但是,如果我将属性更改为字符串而不是int,我不会收到错误。将其声明为int允许客户端验证程序检查该字段是否包含非数字。

1 个答案:

答案 0 :(得分:36)

问题是您使用的MaxLength类型为int

请参阅:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.maxlengthattribute(v=vs.103).aspx

编辑:你;可能正在寻找Range(int,int)