我无法找到关于此的明确答案。在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?
是否可以在单个自定义验证属性类中完成此操作?感谢。