簡體   English   中英

模型中一組字段的數據注釋驗證

[英]Data Annotation Validation for a Group of Fields in Model

我是MVC 3數據注釋的新手,我只是想問問是否可以在模型中的一組字段上添加驗證,如果沒有值,則顯示驗證?

這是我的數據模型中的一組字段

 public class ContactModel
    {
        public Nullable<int> Id { get; set; }


        [Display(Name = "Contact Firstname")]
        [Required(ErrorMessage = "Required!")]
        public string ContactFirstname { get; set; }

        [Display(Name = "Contact Lastname")]
        [Required(ErrorMessage = "Required!")]
        public string ContactLastname { get; set; }

        [Display(Name = "Contact Middlename")]
        public string ContactMiddlename { get; set; }

            [Display(Name = "Phone")]
            [Required(ErrorMessage = "Required!")]
            public string ContactPhone { get; set; }

            [Display(Name = "Mobile ")]
            [Required(ErrorMessage = "Required!")]
            public string ContactMobile { get; set; }

            [Display(Name = "Email")]
            [Required(ErrorMessage = "Required!")]
            public string ContactEmail { get; set; }

        [Display(Name = "Job Title")]
        [StringLength(50, ErrorMessage = "Max character reached!")]
        public string ContactJobTitle { get; set; }

    }

如果電話,手機或電子郵件中的一個沒有價值,我想添加驗證

謝謝

您可以實現IValidatableObject接口,並為所有必要的屬性添加驗證:

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
    if(string.IsNullOrEmpty(Phone) || string.IsNullOrEmpty(Mobile) || string.IsNullOrEmpty(Email))
    {
         yield return new ValidationResult("Some error message");
    } 
}

當然,您應該從這些屬性中刪除[Required]屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM