2
我正在使用流利的驗證,我已經提取了一些通用的驗證規則的電子郵件地址到一個自定義的電子郵件驗證程序,例如。我如何擺脫一個流暢的ValidationResult PropertyName中的點
public class CustomeEmailValidator : AbstractValidator<string>
{
public CustomeEmailValidator (string fieldName)
{
RuleFor(m => m).NotEmpty().WithMessage(EmailEmptyMsg).WithName(fieldName);
RuleFor(m => m).EmailAddress().When(x => !string.IsNullOrEmpty(x)).WithMessage(EmailInvalidMsg).WithName(fieldName);
RuleFor(m => m).Must(x => x.Length <= 94).When(x => !string.IsNullOrEmpty(x)).WithMessage(EmailLengthMsg).WithName(fieldName);
}
}
然後在其他其他驗證像
public class LoginModelValidator : AbstractValidator<LoginModel>
{
public LoginModelValidator()
{
RuleFor(m => m.Password).NotEmpty().WithMessage(EmptyPasswordMsg);
RuleFor(m => m.Email).SetValidator(new MediGapEmailValidator("Email"));
}
}
的問題,請致電這是返回錯誤有一個錯誤「Email.Email」的屬性名或EmailAddress.Email,我需要它只是'電子郵件'或只是一個單一的屬性名稱。
我調用setValidator將
RuleFor(m => m.Email).SetValidator(new MediGapEmailValidator("Email")).OverridePropertyName("Email");
當試圖OverridePropertyName但它似乎並沒有工作。
有沒有更好的方法來分解出這個常見的驗證碼?