11

有人可以分享他们使用 MVC 中的数据注释为最小和最大字符串长度设置单独的错误消息的实现吗?

似乎StringLength只允许单个错误消息MinLength/MaxLength不生成不显眼的验证标记,因为它们不是IClientValidatable

尽管这似乎是一个非常普遍的要求,但我在网上找不到实现。

4

3 回答 3

25

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

最少 5 个字符

[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")]

最多 50 个字符

[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")]
于 2013-02-10T20:20:07.863 回答
15

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

[StringLength(30, ErrorMessage = "Must be between {2} and {1} characters long.", MinimumLength = 6)]
于 2013-08-28T20:58:39.497 回答
0
[StringLength(800, ErrorMessage = "<img src='/images/icon-info.png' /><p>The {0} must be between {2} and {1} characters long.</p>", MinimumLength = 6)]

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

于 2017-02-03T14:45:55.567 回答