MVC5 StringLength验证在int上失败

时间:2014-10-27 22:11:58

标签: validation asp.net-mvc-5 data-annotations

我为int字段指定了以下验证。

[Required(ErrorMessage = ValidationMessages.ResponseRequired)]
        [Digits(ErrorMessage = ValidationMessages.DigitsOnly)]
        [StringLength(6, MinimumLength = 6, ErrorMessage = ValidationMessages.InvalidLength)]
        public int? Code { get; set; }

当我取出StringLength时,帖子成功了。有了它,我得到500例外:

无法将“System.Int32”类型的对象强制转换为“System.String”

这里发生了什么?我需要为int编写一个自定义的吗?在这种情况下,我只想确保用户输入6位数。

2 个答案:

答案 0 :(得分:1)

字符串长度对于int确实有效吗?

你想要达到的目标是什么?输入大于99,999?

然后你可以使用:

[Range(100000,int.MaxValue)]

答案 1 :(得分:0)

您可以使用Range或RegularExpression来控制数字长度。

Range[0,999999]  
Range[100000,999999]
[RegularExpression(@"\d{6}")]