Резюме: DataAnnotation - автоматическая обработка int? заставляет меня переосмысливать их использование.
Может быть, я что-то упустил и легко исправить, но не могу заставить DataAnnotations сотрудничать. У меня есть публичное свойство с моим собственным атрибутом проверки:
[MustBeNumeric(ErrorMessage = "Must be a number")]
public int? Weight { get; set; }
Смысл пользовательского атрибута проверки - быстро проверить, является ли ввод числовым, и отобразить соответствующее сообщение об ошибке. Проблема в том, что когда DataAnnotations пытается привязать строку к int? автоматически не проверяется и отображает «Значение asdf» недопустимо для веса.
Из-за жизни я не могу заставить DataAnnotations перестать обрабатывать это, поэтому я могу позаботиться об этом в своем настраиваемом атрибуте.
Похоже, это будет популярный сценарий (для проверки ввода в числовом формате), и я предполагаю, что есть простое решение, но я его нигде не нашел.