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?

questionAnswers(2)

yourAnswerToTheQuestion