我正在尝试为多个字符串属性编写验证规则,以检查它们是否唯一。
所以我做了验证器来检查它。
_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(...);
答案 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";
});