У меня есть страница ввода данных в моем приложении MVC и определены аннотации данных для проверки ввода.Это работает как ожидалось.
У меня также есть файл для загрузки, который должен проверить входящие данные с теми же правилами, поэтому вместо того, чтобы снова писать правила, я решил отобразить каждую строку в экземпляр класса модели, чтобы я мог использоватьте же правила проверки вне контроллера (описаны в других ответах SO.)
Атрибут [Обязательный] работает, но другие, которые я использую, StringLength и Range, не работают.Вот пример, который я тестировал в LinqPad с тем же результатом:
void Main()
{
var model = new Model { Name = "Test String" };
var validationResults = new List<ValidationResult>();
var validationContext = new ValidationContext(model, null, null);
Validator.TryValidateObject(model, validationContext, validationResults);
validationResults.Select(w => w.ErrorMessage).Dump();
}
// Define other methods and classes here
public class Model
{
[Required, StringLength(8, MinimumLength = 1, ErrorMessage = "String length is outside of range.")]
public string Name { get; set; }
}
Я ожидал бы, что StringLength вызовет ошибку проверки, так как он больше максимальной длины 8, но это не так.Чего мне не хватает?