使用FluentValidation防止双重验证消息

时间:2017-04-04 08:20:56

标签: c# fluentvalidation

我的验证器会检查属性Name是否唯一,因为集合ContentSections中没有其他项具有相同的值。

public class ContentSectionDtoValidator : AbstractValidator<ContentSectionDto>
{
    public ContentSectionDtoValidator(EditContentSectionsDto editContentSectionsDto)
    {
        RuleFor(x => x.Name)
            .Must(x => editContentSectionsDto.ContentSections.Count(contentSection => contentSection.Name == x) == 1)
            .WithMessage("The Name '{0}' has already been used. Names must ne unique.", x => x.Name);
    }
}

为了实现这一点,我将包含整个集合的父模型作为参数传递给构造函数,因此我可以将当​​前项目的Name与其他所有项目进行比较。集合。

这很有效,但显然如果发现Name被任何其他项目使用,则会打印每个匹配的验证错误。

enter image description here

即使条件多次匹配,有没有办法只打印一条消息?

0 个答案:

没有答案