В браузере вы видите локализованный формат даты, предоставляемый операционной системой пользователя (в данном случае, скорее всего, вашей ОС). Есть несколько вещей, о которых вы должны знать. Во-первых, поскольку вы привязываете это поле к DateTime
(с DataType.Date
), Razor генерирует ввод с type="date"
. Это тип ввода HTML5, который в поддерживаемых браузерах (во всех современных браузерах) будет запускать фактический элемент управления датой в браузере.
Во-вторых, ввод даты в HTML5 принимает и возвращает даты ISO YYYY-MM-DD
, но отображение этой даты, отображаемое во вводе, будет локализовано для пользователя. Вы не можете управлять этим дисплеем; это основано на настройках культуры пользователя в их ОС. В результате, если бы вы на самом деле использовали настройки шведской культуры, то здесь показывалось бы то, что вам нужно. Тем не менее, вы, очевидно, используете настройки культуры в США в вашей ОС, так что это то, что вы видите. Опять же, вы не можете контролировать это; вам просто нужно верить, что это будет правильно, или вы можете изменить настройки культуры ОС, чтобы увидеть ее в другом формате.
В-третьих, это касается поддерживаемых браузеров, но в неподдерживаемых браузерах (в основном только в IE 9 и ниже) это будет отображаться как обычный ввод текста без форматирования и позволит пользователю свободно вводить текст в этих браузерах. Таким образом, если вам требуется поддержка старых браузеров, вы должны использовать полифилл или некоторую библиотеку ввода даты, которая позволит вам маскировать / контролировать пользовательский ввод. В зависимости от того, какую библиотеку вы используете в конечном итоге, вы можете явно управлять форматом или использовать настройки культуры, если она правильно локализована. Вам нужно будет обратиться к документации для любой библиотеки, с которой вы в итоге поедете.
Наконец, если вы хотите явно контролировать этот ввод, вы можете самостоятельно указать атрибут type и установить его на text
.
<input type="text" asp-for="Order.DelDt" tabindex=17 class="form-control">
Затем вы можете использовать любое решение на стороне клиента, которое вам нравится, для форматирования даты по вашему желанию. Это дает преимущество, заключающееся в предоставлении единого интерфейса для всех пользователей и типов браузеров. Тем не менее, это также довод "против" и "за" Тип ввода date
имеет глубокую интеграцию с мобильными устройствами и, как правило, обеспечивает гораздо лучший пользовательский опыт. Если вы в конечном итоге используете обычный ввод текста, вы должны убедиться, что любая библиотека на стороне клиента, которую вы используете, представляет собой удобный интерфейс для мобильных устройств.