我遇到需要我填写一个(电子邮件或电话)必填字段的情况。两者都不能为null或为空。
这是我的课。
public class Contact
{
public Email Email {get; set;}
public Phone Phone {get; set;}
}
public class Email
{
[Required]
public string EmailAddress {get;set;}
}
public class Phone
{
[Required]
public int CountryCode {get; set;}
[Required]
public string Number {get; set;}
}
答案 0 :(得分:0)
我建议解决此问题的最佳方法之一是使用Remote属性,该属性使您可以根据确定有效性的特定方法来验证值:
删除验证属性
[Remote("IsPhoneOrEmail", "YourController", ErrorMessage = "Not a valid phone or e-mail!")]
public string Notification { get; set;}
,它调用一种特定的方法来执行验证:
public ActionResult IsPhoneOrEmail(string notification)
{
Regex phoneRegex = new Regex(@"^([0-9\(\)\/\+ \-]*)$");
Regex emailRegex = new Regex("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
return (emailRegex .IsMatch(notification) || phoneRegex.IsMatch(notification));
}