2016-09-29 82 views
0

我想,当用户从有喜欢的交流方式是移动的,或电话,但他们在电子邮件中输入他们的电子邮件地址的形式挑选选项来实现电子邮件即一些服务器端验证表格的文本框并留下确认电子邮件地址空白,服务器端仍应该抛出确认电子邮件不匹配的验证,即使通信的首选方式是“移动”或“电话”。确认电子邮件服务器端验证

请参考下面我的发言:

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

回答

0

使用||而不是&&

您当前的声明是说“如果电子邮件为空/空,并且电子邮件不等于确​​认电子邮件。”当它应该是“如果电子邮件为空/空,或电子邮件不等于确​​认电子邮件。”

+0

现在确认的电子邮件地址始终是mandotory即使其空@ThePerplexedOne – Sam

+0

,我不希望它永远是强制性的,即使其空@Sam我想确认电子邮件验证,只有当用户扔了在那里输入一个有效的电子邮件地址。 – Sam

0

您应该更新条件:

if (isPrefferedWayOfCommunication != mobileOrTelephone && emailIsNotNull && email != confirmEmail) { 
showEmailConfirmationError(); 
} 
+0

这样的事情?如果(this.CCommmunication == Commmunication.Email && ConfirmEmailAddress =电子邮件!) { 产量返回新的ValidationResult( “请确保确认电子邮件的比赛”,新的[] { “ConfirmEmailAddress”}); //返回消息 } – Sam

+0

对,如果用户也可以选择通信模式为“电子邮件”,则会更好。 – Tushar

0

我仅仅指刚错过了!操作字符串之前

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