В зависимости от того, как вы будете различать два типа моделей, вы можете использовать IValidatableObject следующим образом:
public class CombinedViewModel : IValidatableObject
{
[Required]
public string Title {get; set;}
public string Description {get; set;}
public ViewModelType Type {get; set;}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var results = new List<ValidationResult>();
if (Type == ViewModelType.Announce)
{
results.Add(new ValidationResult("Description is required.");
}
return results;
}
}
Где ViewModelType
- перечисление, определяющее 2 типа моделей.