Я хочу сравнить два поля даты, используя проверку надежной проверки, где второе поле должно быть больше, чем первое поле. Однако оба значения могут быть нулевыми. Даже при использовании PassOnNull = True проверка не выполняется, когда оба поля равны нулю. Это работает, как ожидается, с помощью [GreaterThanOrEqualTo], но моя вторая дата должна быть больше.Foolproof Unobtrusive Validation
[GreaterThan("DateFrom", PassOnNull = true, ErrorMessage = "Date To must be greater than Date From")]
public DateTime? DateTo { get; set; }
Рассматривая источник, он обходит проверку, когда любое поле является нулевым (но не тем и другим). Есть ли какие-то соображения по этому поводу? Для меня это не имеет смысла. Я могу легко изменить исходный код, но, будучи установкой NuGet, я нахожусь во власти перезаписывания. В противном случае я могу просто включить его вручную и сделать. Вот исходный фрагмент кода:
if (passOnNull) {
var isNullish = function (input) {
return input == null || input == undefined || input == "";
};
var value1nullish = isNullish(value1);
var value2nullish = isNullish(value2);
if ((value1nullish && !value2nullish) || (value2nullish && !value1nullish))
return true;
}
Следующая модификация имеет смысл для меня в почти любой сценарий я могу думать, так как необходимые поля будут по-прежнему иметь свою собственную проверку, чтобы пройти:
if (value1nullish || value2nullish)
return true;
Есть другим способом я должен проверять это, или FoolProof просто нуждается в исправлении?