有没有办法告诉ASP.NET MVC:
不是如果某个验证属性失败,是否继续验证其余验证属性?
然后,继续进行其余的验证属性,而不管特定的验证属性是否失败?无论如何,这似乎是默认行为。
例如
[MaxLength(200)] // don't go ahead with the next
// validation attribute applied, i.e. the
// RegularExpressionAttribute below if this one
// fails, since there really would be no point in
// doing that.
[RegularExpression(...)]
public string MyProperty { get; set; }
然后有时也以另一种方式进行配置,即不知道是短路,这似乎是当前的默认行为,例如:
[MaxLength(200)] // sure, go ahead with the next one
// even if this one fails
[RegularExpression(...)]
public string MyProperty { get; set; }
基本上,我的问题与this unanswered question几乎相同。
我正在使用针对.NET Framework 4.5.2。的ASP.NET MVC 5.2.7。
答案 0 :(得分:0)
简而言之,我不相信MVC通过提供的数据注释提供此功能。
您应该问自己为什么要遵循建议的方法。由MVC数据批注执行的验证类型在计算上很简单,在首次失败时存在是没有意义的。如果您的注释正在修饰视图模型,则几乎可以肯定,用户将更喜欢看到所有失败的内容,因此他们可以一次性纠正所有错误。重新提交表单以仅找到后续字段而未通过验证将是一场噩梦。