有人请在MVC中使用数据注释分享他们对最小和最大字符串长度的单独错误消息的实现吗?
似乎StringLength
只允许单个错误消息MinLength
/ MaxLength
不生成不显眼的验证标记,因为它们不是IClientValidatable
虽然这似乎是一个非常普遍的要求,但我无法在网上找到实现。
答案 0 :(得分:23)
您可以使用RegularExpression
数据注释进行最低限度检查,并使用StringLength
属性进行最大限度检查。 Javascript将执行正则表达式客户端,因此它们很好而且不引人注目!每个属性只能使用一个RegularExpression
属性,否则您可以使用正则表达式执行最大值和最小值。
最少5个字符
[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")]
最多50个字符
[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")]
答案 1 :(得分:14)
虽然这不是单独的消息,但这就是我所做的:
[StringLength(30, ErrorMessage = "Must be between {2} and {1} characters long.", MinimumLength = 6)]
答案 2 :(得分:0)
[StringLength(800, ErrorMessage = "<img src='/images/icon-info.png' /><p>The {0} must be between {2} and {1} characters long.</p>", MinimumLength = 6)]
这将显示图像以及最小和最大长度。