Fluent Validation - 根据查询结果显示多条错误信息

时间:2021-05-31 13:24:37

标签: c# validation fluent

我正在尝试为多个字符串属性编写验证规则,以检查它们是否唯一。 所以我做了验证器来检查它。 _service 方法返回错误代码列表,与不唯一的属性相对应。 现在如何根据返回的结果码获得或多个的响应消息?

RuleFor(x => x.User)
    .MustAsync(async (q, context, token) =>
    {
        var errors = await _service.CheckUserNameEmailExistsAsync(q.User.UserName, q.User.Email, token);
         return !errors.Any();
     }).WithMessage(...);

1 个答案:

答案 0 :(得分:1)

你可以这样: 创建您类型的局部变量,并将结果放在那里。并在“WithMessage”中引用它并显示您需要的消息。

示例:

            SomeType errors;

            RuleFor(x => x.User)
                .MustAsync(async (q, context, token) =>
                {
                    errors = await _service.CheckUserNameEmailExistsAsync(q.User.UserName, q.User.Email, token);
                    return !errors.Any();
                }).WithMessage((_) => 
                {
                    if (errors....)
                        return "some message";
                    else if (errors...)
                        return "other some message";
                    else
                        return "another some message";
                });