У меня есть проверка на моем слое Service, и мое свойство Birthdate выглядит следующим образом.
<DisplayName("birthdate")> _
<RegularExpression("^\d{2}\/\d{2}\/\d{4}$", ErrorMessage:="Birthdate is not in the correct format.")> _
<DisplayFormat(ApplyFormatInEditMode:=True, ConvertEmptyStringToNull:=True, DataFormatString:="{0:MM/dd/yyyy}")> _
Public Property BirthDate As DateTime
Проверка на стороне клиента работает правильно, если я ввожу что-то вроде 12/12/1990
, но когда форма отправлена, проверка на стороне сервера отключается, и мне говорят, что запись недействительна. Я использую DatePicker jQuery-UI для ввода даты, однако, когда я отключаю DatePicker, проблема не устраняется.
Я что-то здесь упускаю? Я думал, что сторона клиента и сторона сервера будут одним и тем же.
* ** 1008 1009 * второстепенным.
Может быть, потому что я использую datetime2(0)
в своей базе данных SQL Server?
Я проверил приведенную выше теорию безрезультатно ... та же проблема.
EDIT:
Если я удалю
<RegularExpression("^\d{2}\/\d{2}\/\d{4}$", ErrorMessage:="Birthdate is not in the correct format.")>
Затем форма отправляется. Очевидно, это как-то связано с Regex.
EDIT:
Следующий код тоже не работает, но мне интересно, есть ли способ изменить modelState, чтобы правильно установить дату перед передачей в метод IsValid?
Dim birthdate As String = user.BirthDate
ModelState.Item("BirthDate") = DateTime.Parse(birthdate)