Я использую FluentValidation для проверки моих моделей как на стороне клиента, так и на стороне сервера. Я на последней версии:Проверка электронной почты с помощью простой проверки не является тем же клиентом, что и serveride
FluentValidation.MVC5
на момент написания, что
5.5.0.0
У меня есть следующие валидатор, упрощенное:
public class MyViewModelValidator : AbstractValidator<MyViewModel>
{
public MyViewModelValidator()
{
RuleFor(x => x.Email)
.EmailAddress().WithLocalizedMessage(() => MyResources.Validation_Email_NotValidAddress)
.NotEmpty()
.WithLocalizedMessage(() => MyResources.Validation_Email);
}
}
на стороне клиента, кажется, сделать некоторые основные проверки, например, он не будет ничего без текста обе стороны от символа «@» принять, однако он будет принимать что-то вроде [email protected]
Проблема возникает, когда я отправляю эти данные , у меня есть следующий в моем контроллере:
if (!ModelState.IsValid)
throw new Exception("Model validation error");
Это видит модель недействительной вследствие [email protected]
адреса электронной почты и выдает сообщение об ошибке. Так что, похоже, моя проверка на лицевой стороне более слабая, чем моя проверка на стороне сервера.
Относясь к документации, он указывает, что метод Email()
поддерживается клиентами, однако, как представляется, существует некоторая разница между этой серверной стороной и тем, что отображается передним концом.
https://fluentvalidation.codeplex.com/wikipage?title=mvc
Как я могу обеспечить проверку на стороне клиента, как тщательно, как на стороне сервера с электронной почтой.