Как подать заявку на заполнение поля в Аннотации данных в C #? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть сценарий, где мне нужно применить одно (электронное или телефонное) обязательное поле Оба не могут быть нулевыми или пустыми.

Это мой класс.

 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;}
}

1 Ответ

0 голосов
/ 02 июля 2018

Одним из лучших методов, которые я бы предложил для решения этой проблемы, было бы использование атрибута 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));
}
...