Подтвердите проверку на стороне сервера электронной почты

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

Я пытаюсь добиться некоторой проверки на стороне сервера для электронной почты, т.Е. Когда пользователь выбирает в форме опцию, согласно которой предпочтительным способом связи является мобильный или телефонный, но они вводят свой адрес электронной почты в текстовое поле электронной почты формы и оставляют подтверждение адреса электронной почты пустым, серверная сторона все равно должна выполнить проверкуэто подтверждение электронной почты не соответствует, даже если предпочтительным способом связи является мобильный или телефонный.

Пожалуйста, смотрите мое заявление ниже:

 if (string.IsNullOrEmpty(this.Email) amp;amp; Email != ConfirmEmailAddress)
{
    yield return new ValidationResult("Please ensure confirm email matches", new[] { "ConfirmEmailAddress" }); //returns message
}
  

Ответ №1:

Используйте || вместо amp;amp; .

В вашем текущем заявлении говорится: «Если адрес электронной почты равен нулю / пуст, А адрес электронной почты не равен подтверждающему электронному письму». когда должно быть «Если адрес электронной почты равен нулю / пуст, ИЛИ адрес электронной почты не равен подтверждающему электронному письму».

Комментарии:

1. Теперь подтверждение адреса электронной почты всегда является обязательным, даже если оно равно нулю @ThePerplexedOne

2. Я не хочу, чтобы оно всегда было обязательным, даже если оно равно null @Sam, я хочу, чтобы подтверждение проверки электронной почты появлялось только в том случае, если пользователь вводит там действительный адрес электронной почты.

Ответ №2:

Вы должны обновить условие до :

 if (isPrefferedWayOfCommunication != mobileOrTelephone amp;amp; emailIsNotNull amp;amp; email != confirmEmail) {
 showEmailConfirmationError();
}
  

Комментарии:

1. что-то вроде этого? если (это. Ccommunication == Связь. Email amp;amp; ConfirmEmailAddress != Email) { возвращает новый ValidationResult(«Пожалуйста, убедитесь, что совпадают адреса электронной почты», new[] { «ConfirmEmailAddress» }); // возвращает сообщение }

2. Правильно, это лучше, если у пользователя также есть возможность выбрать режим связи как «Электронная почта».

Ответ №3:

Я просто пропустил! оператор перед строкой

 if (!string.IsNullOrEmpty(this.Email) amp;amp; Email != ConfirmEmailAddress)
            {
                yield return new ValidationResult("Please ensure confirm email matches", new[] { "ConfirmEmailAddress" }); //returns message
            }