Ненавязчивая проверка C # MVC Razor

Можно ли провести ненавязчивую проверку, чтобы сделать поле обязательным, но только в случае изменения других свойств?

Например

[Required]
public Decimal Income {get; set;}
[Required]
public Decimal Tax {get; set;}
//Required if tax or income changes
public string ChangeReason {get; set;}

Я думал о том, чтобы иметь несколько полей для хранения резервных копий и написать собственный валидатор, чтобы сравнить их, но подумал, есть ли у кого-нибудь лучшее предложение?

Ответы на вопрос(2)

Ваш ответ на вопрос