Dyskretna walidacja C # MVC Razor
Czy możliwe jest dyskretne sprawdzanie poprawności, aby wymagane było pole, ale tylko wtedy, gdy zmienią się inne właściwości?
Na przykład
[Required]
public Decimal Income {get; set;}
[Required]
public Decimal Tax {get; set;}
//Required if tax or income changes
public string ChangeReason {get; set;}
Pomyślałem o posiadaniu wielu pól do przechowywania kopii i napisaniu Custom Validator, aby je porównać, ale zastanawiałem się, czy ktoś ma lepsze sugestie?