流利的验证允许空或带有结构的值
Posted
技术标签:
【中文标题】流利的验证允许空或带有结构的值【英文标题】:Fluent validation allow empty or value with structure 【发布时间】:2021-12-09 19:20:54 【问题描述】:我有一个排序道具,它可以是空的,也可以是类似的值:
sort=""
sort=["name","desc"]
sort=["name","asc"]
RuleFor(r => r.Sort)
.NotEmpty()
.When(nr => nr.Contains("name"))
.WithMessage("Invalid Sort");
如何允许空的,非空的with包含一个字符串?
【问题讨论】:
r.Sort
使用的是什么类型?是string
吗?是IEnumerable<string>
吗?有什么不同?
【参考方案1】:
您可以指定一个自定义规则。假设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。
【讨论】:
以上是关于流利的验证允许空或带有结构的值的主要内容,如果未能解决你的问题,请参考以下文章