Как установить значение даты по умолчанию в DateTime EditorFor - PullRequest
0 голосов
/ 23 сентября 2019

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

Вот над чем я работаю:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]

Затем я устанавливаю дату сегодня, DateTime.Now вот так model.NotifyDate = DateTime.Now; enter image description here

Дата не устанавливается.Однако, если я удалю [DataType(DataType.Date)] из модели, я получу: enter image description here

Я получу дату, но календарь пропал.В чем проблема?Или я использую datepicker неправильно?

Вот мой взгляд:

@Html.EditorFor(m => m.NotifyDate, new { htmlAttributes = new { @class = "form-control input-sm" } })

Ответы [ 3 ]

1 голос
/ 23 сентября 2019

Поскольку браузер ожидает значение для сгенерированного ввода HTML, необходимо либо предоставить значение с помощью клиентского JavaScript-кода (или указателя даты на стороне клиента), либо связать значение с моделью.Вы можете привязать значение к модели и перейти к виду из контроллера следующим образом.

public async Task<ActionResult> Create()
    {
         var dateInfo = new DateInfo()
            {
                StartDate = DateTime.Now
            };
            return View(dateInfo);
    }

Или Вы можете назначить значение со стороны клиента.jQuiery Ui прост и легок в реализации.Вы можете посетить .

1 голос
/ 23 сентября 2019

Вы должны попробовать этот указатель даты в js.

$('.date').datepicker({
            format: "dd.mm.yyyy",
            weekStart: 1,
            clearBtn: true,
            todayBtn: "linked",
            language: "tr",
            startDate: new Date(),
            autoclose: true
        });
1 голос
/ 23 сентября 2019

Вы были на правильном пути!Значения по умолчанию, такие как это, должны быть установлены в ViewModel
(как кажется, вы делаете w / model.NotifyDate = DateTime.Now;)

Проблема здесь заключается в том, что браузер ожидает значение длясгенерированный элемент html input для форматирования по-разному, а именно: yyyy-MM-dd против yyyy/MM/dd.
(обратите внимание на использование - против /)

Чтобы браузер правильно отображал дату, значение должно быть отформатировано как 2019-09-23.

ex:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

Здесь является отличным ответом на аналогичный вопрос, который должен пролить немного света на то, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...