Я использую ненавязчивую проверку на стороне клиента.
У меня есть ViewModel со следующими аннотациями данных
[DisplayName("Entrytime")]
[DataType("Time")]
[RegularExpression(@"^(?[0-1]?[0-9]|[2][0-3]):[0-5][0-9]$", ErrorMessageResourceType = typeof(LocalizedResources), ErrorMessageResourceName = "Time")]
public DateTime? EntryTime { get; set; }
Проблема в том, что проверка на стороне клиента работает нормально, что позволяет мне вводить
например 12:20 в мое поле, а не 25: 20.
Но на сервере, если я спрашиваю ModelState.IsValid, я получаю сообщение об ошибке на поле.
Кажется, проблема находится перед двоеточием в моем регулярном выражении. Если я изменю выражение на
[RegularExpression(@"^.*:[0-5][0-9]$",...
Работает нормально.
Но если у меня есть
[RegularExpression(@"^[0-2][0-9]:[0-5][0-9]$",...
Он все равно не примет это на сервере. Изменения работают, как и ожидалось, при проверке на стороне клиента.
Есть ли разница с анализом регулярных выражений на стороне клиента и на стороне сервера? Кажется, немного глючит?!
Спасибо