Nullable Datetime in. NET CORE MVC - PullRequest
0 голосов
/ 14 марта 2020

У меня есть представление, которое используется для «Создать» и «Обновить» модель базы данных. Модель базы данных имеет свойство, которое является DateTime? (обнуляемым). Теперь я пытаюсь использовать это обнуляемое значение даты и времени в представлении ASP. NET Core MVC, которое выглядит следующим образом:

@Html.TextBoxFor(model => model.MyNullableDate,"{0:dd.MM.yyyy}", new { placeholder = "dd.MM.yyyy", @class = "form-control form-control-sm", type = "date" })

Это очень хорошо работает для процесса «Создать». Если дата установлена, она правильно записывается в базу данных. Но теперь я хочу обновить уже существующее значение базы данных model.MyNullableDate.

. Я прочитал значение из базы данных и снова передал его в представление. Свойство MyNullableDate установлено правильно, и я увидел в отладчике, что в него записана правильная дата.

Но в представлении ничего не отображается ... это всего лишь пустое текстовое поле без переданного значения MyNullableDate.

Свойство выглядит так:

    [DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}")]
    [DataType(DataType.Date)]
    public DateTime? MyNullableDate{ get; set; }

Что я делаю не так? Как я могу показать значение MyNullableDate в TextBoxFor?

1 Ответ

2 голосов
/ 14 марта 2020

Это связано с форматом даты, а не обнуляемостью.

См. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date

Отображаемый формат даты будет отличаться от фактического значения - отображаемая дата форматируется на основе локали браузера пользователя, но проанализированное значение всегда форматируется гггг-мм-дд .

Когда я передал format как показано ниже, дата отображается:)

@Html.TextBoxFor(
    expression: model => model.MyNullableDate, 
    format: "{0:yyyy-MM-dd}", 
    htmlAttributes: new
    {
        placeholder = "dd.MM.yyyy", 
        @class = "form-control form-control-sm", 
        type = "date"
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...