我为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位数。
答案 0 :(得分:1)
字符串长度对于int确实有效吗?
你想要达到的目标是什么?输入大于99,999?
然后你可以使用:
[Range(100000,int.MaxValue)]
答案 1 :(得分:0)
您可以使用Range或RegularExpression来控制数字长度。
Range[0,999999]
Range[100000,999999]
[RegularExpression(@"\d{6}")]