- Вы можете проверить свое поле с помощью регулярного выражения
a.Определите свое регулярное выражение (Регулярное выражение электронной почты - это то, которое я использую, а регулярное выражение телефона: PhoneAttribute )
const string RGX_Email = "^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$";
const string RGX_Phone = @"^(\+\s?)?((?<!\+.*)\(\+?\d+([\s\-\.]?\d+)?\)|\d+)([\s\-\.]?(\(\d+([\s\-\.]?\d+)?\)|\d+))*(\s?(x|ext\.?)\s?\d+)?$";
b.Затем вы можете проверить с помощью атрибута регулярного выражения
[RegularExpression($"{RGX_Email}|{RGX_Phone}", ErrorMessage = "Invalid Phone or Email")]
public string EmailOrPhoneNumber { get; set; }
А на стороне сервера вы можете использовать код, подобный этому, для управления вашей моделью
if(String.IsNullOrEmpty(model.EmailOrPhoneNumber))
return error message;
if(model.EmailOrPhoneNumber.Contains("@"))
return SignInWithEmail(model);
else return SignInWithPhone(model);