gpt4 book ai didi

c# - FluentValidation 字符串 NotNull 与 NotEmpty

转载 作者:IT王子 更新时间:2023-10-29 04:37:08 25 4
gpt4 key购买 nike

最初在为字符串编写验证逻辑时,我决定对任何需要的字符串使用 NotEmpty。使用 .NotEmpty().Length(min, max) 时,这将导致在传入空字符串时返回两个错误,而不是仅返回一个错误。

如何避免冗余错误?

最佳答案

.Length(min, max) 如果字符串为null则不会报错,但当字符串为空且min大于0时会报错。有两种方式可以实现一个要求的字符串,最小值长度大于 0。

在遇到第一个错误时停止的典型方法是使用级联方法:

    RuleFor(o => o.PropertyName)
.Cascade(CascadeMode.StopOnFirstFailure)
.NotEmpty() // Will return an error if null or empty
.Length(2, 10) // Will only return an error if length == 1 or > than 10

但是对于字符串,阅读以下内容更容易:

    RuleFor(o => o.PropertyName)
.NotNull()
.Length(2, 10) // Will not return an error on null

使用 NotNull、NotEmpty 和 Length 的字符串验证场景:

可选的最大长度:

    RuleFor(o => o.PropertyName).Length(0, max);


可选的最小和最大长度:

    RuleFor(o => o.PropertyName).Length(min, max);


必需但长度可以为零:

    RuleFor(o => o.PropertyName).NotNull()


必需且必须具有非零长度:

    RuleFor(o => o.PropertyName).NotEmpty();


必需且具有最大长度:

    RuleFor(o => o.PropertyName).NotNull().Length(0, max);


必需且具有最小和最大长度:

    RuleFor(o => o.PropertyName).NotNull().Length(min, max);

关于c# - FluentValidation 字符串 NotNull 与 NotEmpty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441209/

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