MVC 5 Создать редактор фиксированного формата для даты и времени

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

В настоящее время я могу отображать значение, как я хочу, используя DataAnnotations.

[DisplayFormat(DataFormatString = "{0:{0:HH:mm:ss dd/MM/yyyy}}", ApplyFormatInEditMode = true)]
public DateTime TimeStamp_Start { get; set; }

MVC/Razor:

@Html.EditorFor(m => m.TimeStamp_Start)

И тогда я получаю правильный визуальный эффект:

Визуальное представление

Но проблема сейчас в том, что это можно редактировать в неправильном формате, как показано ниже:

Визуальное представление, когда происходит ошибка при редактировании

Как я могу создать объект @Html.EditorFor, который показывает дату как на первом изображении, но при редактировании позволяет только заполнить этот формат: {xx/xx/xxxx xx:xx:xx}?

Я хочу, чтобы значения '/', ':' и ' ' (пробел) формата даты оставались на месте, а текст, который пользователь вводит, чтобы заполнить пробелы. Я видел это на других сайтах, но не могу найти код MVC/Razor для него.

1 ответ

Пожалуйста, удалите аннотацию данных и используйте ее в cshtml

 @Html.TextBoxFor(x => x.TimeStamp_Start, new { type="date" })

которые отображают тип ввода html5. Вы можете использовать datetime-local, чтобы получить машинное время пользователя.

проверьте тип ввода html здесь https://www.w3schools.com/html/html_form_input_types.asp

Другие вопросы по тегам