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

Fluent Validation - Multiple error messages according to query result

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

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(...);

你可以这样走: 创建一个你的类型的局部变量,并将结果放在那里。并在“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";
                });