Asp. Net Core Show DateTime на основе локализации - PullRequest
0 голосов
/ 10 января 2020

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

-

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "dd/MM/yyyy")]
public DateTime Date{ get; set; }

html

<input asp-for="Process.Date" class="form-control" />

1 Ответ

2 голосов
/ 10 января 2020

Я предполагаю, что на самом деле вы имеете в виду ввод даты HTML5 и то, как она отображается браузерами. То, что вы видите , является локализованным, но оно локализовано на основе культуры, установленной на клиентском компьютере. Другими словами, вы не можете контролировать это с сервера. Это на самом деле так, как это должно быть . Конечный пользователь сам решает свои культурные предпочтения. Кроме того, тип ввода даты не поддерживает какой-либо формат даты, кроме ISO (ГГГГ-ММ-ДД). Передача даты, отформатированной любым другим способом, будет считаться нулевым значением.

Если вы не хотите использовать это поведение, ваш единственный выбор - использовать обычный ввод текста, чего можно достичь, указав вручную type атрибут:

<input type="text" asp-for="Process.Date" class="form-control" />

Однако, когда вы делаете это, это просто обычный ввод текста. Вы не получите контроль выбора даты, проверки и т. Д. c. Вам нужно будет полагаться на сторонние библиотеки JS, чтобы добавить эту функцию на стороне клиента, если вы этого хотите.

...