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