How come module-level validators are evaluated only after property-level validators?
- by jonathanconway
I'm using the module-level validator: 'PropertiesMustMatch' on my view-model, like so:
[PropertiesMustMatch("Password", "PasswordConfirm")]
public class HomeIndex
{
    [Required]
    public string Name { get; set; }
    public string Password { get; set; }
    public string PasswordConfirm { get; set; }
}
I'm noticing that if I submit the form without Name filled in, the ValidationSummary() helper returns only the following error:
  
  The Name field is required.
  
However, if I fill in Name, then ValidationSummary() will return a PropertiesMustMatch error:
  
  'Password' and 'PasswordConfirm' do not match.
  
So it looks like the property-level validators are being evaluated first, then the model-level validators.
I would much prefer if they were all validated at once, and ValidationSummary would return:
  
  The Name field is required.
  'Password' and 'PasswordConfirm' do not match.
  
Any ideas what I can do to fix this?
I'm studying the MVC 2 source-code to try to determine why this happens.