验证MinLength,但不是必需的

时间:2018-12-17 09:19:15

标签: asp.net-core

如何创建不是必需的数据字段,但是如果字符串不为空,则必须具有最小和最大长度要求。

我已经读过.NET mvc3 validation minimumlength, but not required,但这是针对.net mvc3的,我认为可能会有一个新的更复杂的解决方案。

    [MinLength(6, ErrorMessage = "Минимално 6 символа")]
    [StringLength(12, ErrorMessage = "Максимално 12 символа")]
    [Display(Name = nameof(TextResources.Egn), ResourceType = typeof(TextResources))]
    public string ClientIdentifier { get; set; }

2 个答案:

答案 0 :(得分:1)

在这种情况下,无需验证属性,而是使用自定义方法,并在初始化期间调用该方法。

   if(!string.Isnullorempty(ClientIdentifier))
   {
             if()//check min and max length

                throw exception
   }

答案 1 :(得分:1)

尝试如下所示更改代码,StringLength属性可让您设置字符串属性的最大长度,以及可选的最小长度。

[StringLength(12, MinimumLength = 6, ErrorMessage = "The field must be a string with a minimumLength of 6 and a maxmumLength of 12")]

[Display(Name = nameof(TextResources.Egn), ResourceType = typeof(TextResources))]
public string ClientIdentifier { get; set; }