ASP.NET Core MVC 8 Проверка модели DateTime всегда недействительнаC#

Место общения программистов C#
Anonymous
ASP.NET Core MVC 8 Проверка модели DateTime всегда недействительна

Сообщение Anonymous »

Я работаю над проектом миграции ASP.NET Core MVC 8 из версии ASP.NET Core 3.1.
Некоторые пакеты все еще находятся в версии 3.1:
  • Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
  • Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
  • Microsoft.VisualStudio.Web.CodeGeneration.Design
Несмотря на то, что некоторые пакеты находятся в разных версиях, проект хорошо компилируется и может работать.
Он кажется, есть некоторая ретро-совместимость
У меня возникла проблема с проверкой модели свойства DateTime, которая всегда выдает неверную дату. Несмотря на то, что во время отладки объекта модели представления установлено значение DateTime и я пытаюсь повторно запустить проверку модели вручную, состояние модели по-прежнему недействительно.
У меня есть страница представления с Поле ввода выбора даты, подобное следующему:

Код: Выделить всё

@Html.TextBoxFor(model => model.Date, "{0:MM/dd/yyyy}",
new { @class = "btn", type = "date", @Value = Model?.Date })
Моя модель представления имеет атрибут DateTime следующим образом:

Код: Выделить всё

[Required]
[Display(Name = "Date")]
[RegularExpression(@"{0:MM/dd/yyyy}", ErrorMessage = "Invalid Date")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
Я был бы признателен за любое другое предложение.
Я пробовал некоторые предложения из других вопросов SO, но безуспешно:

[*]Форматирование даты в представлении в ASP.NET Core MVC
[*]Почему мой DateTime ModelState недействителен?

Я пробовал изменить атрибуты проверки для других регулярных выражений (например: [RegularExpression(@"^\d{4}\-(0?[1-9]|1[012]) \-(0?[1-9]|[12][0-9]|3[01])$", ErrorMessage = "Неверный формат даты")] ), я также попробовал изменить тип свойства в строку, чтобы с ней было «проще» справиться. Я попытался удалить регулярное выражение и оставить только аннотацию DataType... но ошибка проверки все еще возникает.
Наконец, я ожидал, что состояние модели будет действительным. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ys-invalid

Вернуться в «C#»