You can achieve this using Regex . You must combine the regular expression for email and phone together.
public class RegisterViewModel { [Required] [Display(Name = "Email or Phone")] [RegularExpression(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$|^\+?\d{0,2}\-?\d{4,5}\-?\d{5,6}", ErrorMessage = "Please enter a valid email address or phone number")] public string EmailOrPhone { get; set; } }
Or you can create a custom attribute
public class EmailOrPhoneAttribute : RegularExpressionAttribute { public EmailOrPhoneAttribute() : base(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$|^\+?\d{0,2}\-?\d{4,5}\-?\d{5,6}") { ErrorMessage = "Please provide a valid email address or phone number"; } }
and use it
public class RegisterViewModel { [Required] [Display(Name = "Email or Phone")] [EmailOrPhone] public string EmailOrPhone { get; set; } }
Mahbubur rahman
source share