MVC中每个自定义验证只有一条错误消息?

时间:2014-06-19 00:16:01

标签: asp.net-mvc validation

我无法找到关于此的明确答案。在asp.net MVC 5中,当某些条件为真时需要某些字段时,我们需要通过继承ValidationAttribute来实现自定义验证属性。所以,我有这个:

public class RegistrationValidationAttribute : ValidationAttribute
{
   protected override ValidationResult IsValid(object value, ValidationContext validationContext)
   {
      RegistrationModel model = (RegistrationModel)value;
      if (model.IsNewbie)
      {
           if (model.SelectedCoachId == 0)
           {
               return new ValidationResult("Since you are a newbie, you have to select a coach.");
           }

           if (model.SelectedDominantHand == 0)
           {
               return new ValidationResult("If you are a newbie, you have to tell us if you are a leftie or rightie.");
           }
      } 

      return ValidationResult.Success;

   }
}

但是,即使注册人说他是新手而且没有选择教练也没有指定他的优势牌,这只会返回1条错误信息。我希望ValidationResult类有一个构造函数,它接收一组错误消息。

那么,我是否必须将此自定义验证属性拆分为2个自定义验证属性类,其中一个表示MustSelectCoachIfNewbieAttribute,另一个表示MustSpecifyDominantHandIfNewbieAttribute?

是否可以在单个自定义验证属性类中完成此操作?感谢。

0 个答案:

没有答案