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