【发布时间】:2019-10-23 01:03:41
【问题描述】:
我正在使用 fluent API Version=8.0.0.0 并努力实现对唯一电子邮件的客户端验证。客户端验证工作正常,但仅适用于名字、姓氏和无效电子邮件,但不适用于需要从数据库中检查的唯一电子邮件。我已经在使用 unobtrusive 和 jquery。
但是,如果电子邮件不是唯一的,则 Modelstate 会返回 false。我可以做些什么来触发独特的电子邮件验证客户端?
public class OfferValidator : AbstractValidator<model>
{
private ApiService _apiService;
public OfferValidator(ApiService apiService)
{
_apiService = apiService;
RuleFor(x => x.FirstName).NotEmpty()
.WithMessage("FirstName is required!");
RuleFor(x => x.LastName).NotEmpty()
.WithMessage("LastName is required!");
RuleFor(s => s.Email).NotEmpty()
.WithMessage("Email is required!")
.EmailAddress()
.WithMessage("Invalid email");
RuleFor(x => x.Email).Must(IsEmailUnique)
.WithMessage("email-Id already exists!");
}
public bool IsEmailUnique(string email)
{
return this.apiService.GetCustomerByEmail(email) ? false : true;
}
}
我也经历过this,但是在这个版本的fluent API中找不到“FluentValidationPropertyValidator”。
【问题讨论】:
标签: .net asp.net-mvc-4 asp.net-mvc-5 fluent fluentvalidation