我正在尝试使用Fluent Validation,一开始似乎很容易使用,但现在出现了一些问题。我需要验证一个 SignIn 视图模型,如下所示:
public SignInViewModelValidator(IMembershipService membershipService)
{
_membershipService = membershipService;
RuleFor(x => x.EMail).NotEmpty().EmailAddress();
RuleFor(x => x.Password).NotEmpty().Length(6, 20);
Custom(x =>
{
var user = _membershipService.ValidateUser(x.EMail, x.Password);
if (user == null)
return new ValidationFailure("EMail", "Your E-Mail Address or password was invalid.");
return null;
});
}
但我一次得到所有错误,如下所示:
- “电子邮件”不应为空。
- 您的电子邮件地址或密码无效。
- “密码”不应为空。
当其他规则无效时,如何更改此行为以不检查自定义验证规则?换句话说,它应该只在“电子邮件”和“密码”字段有效时检查自定义验证规则。