Hi, 诸位。
我自定义了一个验证如下代码:
1 [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)] 2 public class RadioButtonListValidationAttribute : ValidationAttribute 3 { 4 protected override ValidationResult IsValid(object value, ValidationContext validationContext) 5 { 6 return new ValidationResult(validationContext.DisplayName + "不能为空"); 7 } 8 }
当我直接应用到 Model 上时,OK。
1 public class Employee 2 { 3 4 [DisplayName("姓名")] 5 public string Name { get; set; } 6 7 [RadioButtonList("Status")] 8 [RadioButtonListValidation()] 9 public string Status { get; set; } 10 11 12 [CheckBoxList("Status")] 13 [CheckBoxListValidation()] 14 public IEnumerable<string> Status2 { get; set; } 15 }
这时自定义验证生效。
不过,当我为 Model 中的 Name 应用上 Required 后。
1 public class Employee 2 { 3 [Required] 4 [DisplayName("姓名")] 5 public string Name { get; set; } 6 7 [RadioButtonList("Status")] 8 [RadioButtonListValidation()] 9 public string Status { get; set; } 10 11 12 [CheckBoxList("Status")] 13 [CheckBoxListValidation()] 14 public IEnumerable<string> Status2 { get; set; } 15 }
这时,我的两个自定义验证就不会工作了,必须等 Model 中所有[Required] 通过后,才能工作。
是这什么原因呢?要怎么样解决呢?
请诸位帮助,谢谢。