Asp.net mvc 4 最小和最大字符串长度的单独错误消息-MVC4数据注释

Asp.net mvc 4 最小和最大字符串长度的单独错误消息-MVC4数据注释,asp.net-mvc-4,validation,data-annotations,Asp.net Mvc 4,Validation,Data Annotations,有人能分享一下他们在MVC中使用数据注释为最小和最大字符串长度分别提供错误消息的实现吗 似乎StringLength只允许一条错误消息MinLength/MaxLength不会生成不引人注目的验证标记,因为它们不是iclientvalidable 虽然这似乎是一个非常常见的要求,但我无法在web上找到实现。您可以使用RegularExpression数据注释进行最小检查,并使用StringLength属性进行最大检查。Javascript将在客户端执行正则表达式,因此它们很好且不引人注目!每个属

有人能分享一下他们在MVC中使用数据注释为最小和最大字符串长度分别提供错误消息的实现吗

似乎
StringLength
只允许一条错误消息
MinLength
/
MaxLength
不会生成不引人注目的验证标记,因为它们不是
iclientvalidable


虽然这似乎是一个非常常见的要求,但我无法在web上找到实现。

您可以使用
RegularExpression
数据注释进行最小检查,并使用
StringLength
属性进行最大检查。Javascript将在客户端执行正则表达式,因此它们很好且不引人注目!每个属性只能使用一个
RegularExpression
属性,否则可以使用正则表达式执行最大值和最小值

最少5个字符

[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")]
[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")]
最多50个字符

[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")]
[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")]

虽然这不是单独的消息,但这是我所做的:

[StringLength(30, ErrorMessage = "Must be between {2} and {1} characters long.", MinimumLength = 6)]
[StringLength(800,ErrorMessage=“长度必须介于{2}和{1}个字符之间。

”,最小长度=6)]

这将显示一个图像以及最小和最大长度。

这些将生成不引人注目的验证属性吗?是的,javascript将执行正则表达式客户端sideCool,请随意回答这个问题。这应该在4.5 MinLength MaxLength属性中完成:在我的情况下,我需要正则表达式来分别显示一些其他错误消息和min-max,但我无法升级版本,所以我需要进行自定义验证。嘿,我刚刚尝试了这个,我不能使用2,它表示重复属性!哈哈,我仍然需要一个解决方案:(啊。我知道他们工作得很低调……那么,对于最小值使用其中一个,对于最大值使用
[StringLength(50,ErrorMessage=“超过最大{2}个字符”)
呢?好主意:)我使用了StringLength(int.MaxValue,ErrorMessage=“minimum”)对于最小值和最大值的正则表达式。再次感谢当有多行[RegularExpression(@“^[\s\s]{5,}$”,ErrorMessage=“所需最少5个字符”)]时,此操作会失败。我个人认为这不是一个合适的答案,因为您可能已经将正则表达式用于其他用途(在我的例子中是一个带有正则表达式的密码字段,用于检查特定字符)。我认为正确的方法可能是扩展StringLength或创建您自己的属性。如果您不使用[Required],且字符串为空,则忽略MinimumLength。