Asp.net mvc MVC中每个自定义验证只有一条错误消息?
我还没有找到一个明确的答案。在asp.net MVC 5中,当某些字段仅在某些条件为真时才需要时,我们需要通过继承ValidationAttribute实现自定义验证属性。所以,我有这个:Asp.net mvc MVC中每个自定义验证只有一条错误消息?,asp.net-mvc,validation,Asp.net Mvc,Validation,我还没有找到一个明确的答案。在asp.net MVC 5中,当某些字段仅在某些条件为真时才需要时,我们需要通过继承ValidationAttribute实现自定义验证属性。所以,我有这个: public class RegistrationValidationAttribute : ValidationAttribute { protected override ValidationResult IsValid(object value, ValidationContext validat
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类有一个接受错误消息集合的构造函数
那么,我是否必须将此自定义验证属性拆分为两个自定义验证属性类,其中一个表示MustSelectCoachIfNewbieAttribute,另一个表示MustSpecificDominantHandiFNewBieAttribute
是否可以在单个自定义验证属性类中实现这一点?谢谢。你不能只返回一个列表吗?这是一个选项吗?方法签名表示它返回ValidationResult,而不是ValidationResult的集合。在我们的应用程序(MVC3)中,我们使用了一个自定义验证引擎,它返回一个ValidationResult列表,并通过ModelState.AddModelError将它们添加到ModelState。但是你可能只需要这样的东西:哈,这篇文章看起来很有趣。我会试一试的。非常感谢。它应该内置到官方MVC框架中。请看这里: