我正在尝试为电子邮件实现一些服务器端验证,即当用户从表单中选择选项时,首选的通信方式是移动或电话,但他们在表单的电子邮件文本框中输入他们的电子邮件地址并将确认电子邮件地址留空,服务器端仍应抛出确认电子邮件不匹配的验证,即使首选的通信方式是手机或电话。
请参阅下面的陈述:
if (string.IsNullOrEmpty(this.Email) && Email != ConfirmEmailAddress)
{
yield return new ValidationResult("Please ensure confirm email matches", new[] { "ConfirmEmailAddress" }); //returns message
}
答案 0 :(得分:0)
使用||
代替&&
。
您当前的陈述是"如果电子邮件为空/空,则电子邮件不等于确认电子邮件。"当它应该是"如果电子邮件为空/空,或电子邮件不等于确认电子邮件。"
答案 1 :(得分:0)
您应该将条件更新为:
if (isPrefferedWayOfCommunication != mobileOrTelephone && emailIsNotNull && email != confirmEmail) {
showEmailConfirmationError();
}
答案 2 :(得分:0)
我被jsut错过了!字符串
之前的运算符if (!string.IsNullOrEmpty(this.Email) && Email != ConfirmEmailAddress)
{
yield return new ValidationResult("Please ensure confirm email matches", new[] { "ConfirmEmailAddress" }); //returns message
}