In my business domain, a "User" entity is associated with a single "Person" entity (so the User instance contains security/login information, but the Person entity contains the person's human contact information).
My ViewModel looks like this:
class UserViewModel {
[Required]
public String UserName { get; set; }
public Int64 PersonId { get; set; }
public PersonViewModel Person { get; set; }
public Boolean PersonViewModelIsNew { get; set; }
}
class PersonViewModel {
[Required]
public String FirstName;
[Required]
public String LastName;
// etc
}
The web-page allows the visitor to edit a User such that they can replace the User's Person information with either a brand-new Person instance, or an existing Person pulled from the database.
Attached is a screenshot of the form:

The idea is that if the "Another employee" radio-button (maps to "UserViewModel.PersonViewModelIsNew" property) is selected then the validation of the "UserViewModel.Person" members will be disabled.
However ASP.NET MVC doesn't have any concept of validation-groups like WebForms does, so how can I control validation like this?