如何应用C#中数据注释中必填字段?

时间:2018-07-02 08:42:43

标签: c# validation annotations data-annotations

我遇到需要我填写一个(电子邮件或电话)必填字段的情况。两者都不能为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;}
}

1 个答案:

答案 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));
}