gpt4 book ai didi

asp.net-mvc-3 - StringLength 属性行为

转载 作者:行者123 更新时间:2023-12-01 16:55:16 25 4
gpt4 key购买 nike

我有这样的属性,用于检查最小和最大字符串长度:

    [StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public string PropertyName {get; set;}

基本上这是在默认的 asp.net mvc 3.0 模板中声明的方式(它们只有最大值 100)。

因此,如果字符串包含的字符少于 3 个,则显示错误消息将为

"The PropertyName  must be at least 3 characters long."

所以我认为在这种情况下没有任何问题

但是如果字符串长度超过 10,显示消息仍然会是

"The PropertyName  must be at least 3 characters long."

所以现在它变得不正确

但是如果我将消息模板更改为类似的内容:

    [StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long and maximum {1} characters long", MinimumLength = 3)]

这两种情况的错误消息都是这样的:

"The PropertyName must be at least 3 characters long and maximum 10 characters long"

而且也不太好

1) 消息太长

2)最好为每种情况显示单独的消息,所以问题是我该怎么做?

有什么方法可以显示两条不同的消息,一条消息是长度小于最小值,另一条消息是长度大于最大值?

我只能看到一种解决方法,那就是声明两个单独的 StringLength 属性,一个属性将检查最小值,另一个属性将检查最大值,但不可能在方法上添加两个相同的属性,我也会使用 MinLengthMaxLength 属性,但它们不会生成不引人注目的属性。所以看起来我应该编写我的自定义验证属性

但是,如果可能的话,为一个 StringLength 验证属性在每种情况下显示两条不同的消息(最小和最大)就太好了,您觉得怎么样?

最佳答案

您可以使用 MinLength、MaxLength 属性。比两个StringLength属性更清晰

[MinLength(3, ErrorMessage="The {0} must be at least {2} characters long")]
[MaxLength(10, ErrorMessage="The {0} must be maximum {2} characters long")]
public string PropertyName { get; set; }

关于asp.net-mvc-3 - StringLength 属性行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com