流畅的验证允许空值或具有结构的值
Fluent validation allow empty or value with structure
我有一个 sort prop,它可以是空的或类似的值:
sort=""
sort=["name","desc"]
sort=["name","asc"]
RuleFor(r => r.Sort)
.NotEmpty()
.When(nr => nr.Contains("name"))
.WithMessage("Invalid Sort");
如何允许空和非空包含一个字符串?
您可以只指定一个自定义规则。假设 Sort
属于 string[]
:
RuleFor(r => r.Sort)
.NotNull()
.Must(x => x.Length == 0 || (x.Length == 2 && x[0] == "name" &&
(x[1] == "desc" || x[1] == "asc")))
.WithMessage(...);
如果您需要重用此逻辑,只需使用自定义规则生成器 as explained here。
我有一个 sort prop,它可以是空的或类似的值:
sort=""
sort=["name","desc"]
sort=["name","asc"]
RuleFor(r => r.Sort)
.NotEmpty()
.When(nr => nr.Contains("name"))
.WithMessage("Invalid Sort");
如何允许空和非空包含一个字符串?
您可以只指定一个自定义规则。假设 Sort
属于 string[]
:
RuleFor(r => r.Sort)
.NotNull()
.Must(x => x.Length == 0 || (x.Length == 2 && x[0] == "name" &&
(x[1] == "desc" || x[1] == "asc")))
.WithMessage(...);
如果您需要重用此逻辑,只需使用自定义规则生成器 as explained here。