Подтвердить что ты не робот

Как использовать Html.TextBoxFor с типом ввода = дата?

Я хочу реализовать в своем коде. Для этого у меня есть следующее:

@Html.TextBoxFor(model => model.CreationDate, new { @type = "date" })

Этот код генерирует следующий HTML:

<input data-val="true" data-val-date="The field CreationDate must be a date." 
             data-val-required="The CreationDate field is required." 
             id="CreationDate" name="CreationDate" type="date" 
             value="09/05/2012 15:02:19">

Значение не отображается на веб-странице, потому что type = "date" ожидает данные в формате YYYY-MM-DD.

Я пробовал форматировать дату, но это взрывается, конечно.

@Html.TextBoxFor(model => model.CreationDate.ToString("YYYY-MM-DD"), 
                 new { @type = "date" })

Как использовать метод TextBoxFor для правильного отображения конструкции? Или я должен использовать какой-то другой метод (я уже пробовал редактор, но не смог)?

CreationDate имеет тип DateTime.

4b9b3361

Ответ 1

Попробуйте это;

@Html.TextBoxFor(model => model.CreationDate,
           new { @type = "date", @Value = Model.CreationDate.ToString("yyyy-MM-dd") })

Вы должны обрабатывать null при настройке значения.

ИЛИ

Если вы можете изменить Model, вы можете попробовать это:

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

и, на ваш взгляд, вы можете использовать EditorFor помощник.

@Html.EditorFor(model => model.CreationDate, new { @type = "date" })

Ответ 2

Дизайн модели:

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

Просмотр дизайна:

<%: Html.EditorFor(m => m.CreationDate, new { @type = "date" }) %>

Ответ 3

Я сделал что-то подобное с EditorFor и библиотекой boostrap-datepicker:

    <div class="input-prepend date" id="startDate" [email protected] data-date-format="m/d/yyyy">
        <span class="add-on"><i class="icon-calendar"></i></span>
        @Html.EditorFor(m => m.StartDate)            
    </div>

Ответ 4

Преобразовать С# Datetime в HTML-5 Значение даты

<input type="date" value="<%= SomeFieldDate.ToString("yyyy-MM-dd")%>"/>