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

MVC 4 Razor добавляет дату ввода типа

Мне интересно, как вставить атрибуты <input type="date"/> для datetime моей модели. На данный момент Razor создает простой элемент ввода с type="datetime". Я хочу использовать новые типы ввода HTML5.

4b9b3361

Ответ 1

Мне удалось это сделать, используя следующий код.

@Html.TextBoxFor(model => model.EndTime, new { type = "time" })

Ответ 2

Формат входных данных даты требует даты, указанной в http://tools.ietf.org/html/rfc3339#section-5.6 полной даты.

Итак, я закончил:

<input type="date" id="last-start-date" value="@string.Format("{0:yyyy-MM-dd}", Model.LastStartDate)" />

Я попытался сделать это "правильно", используя:

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

с

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

К сожалению, всегда казалось, что атрибут value ввода введен в стандартное время, поэтому я применил форматирование непосредственно, как указано выше.

Edit:

По словам Йорна, если вы используете

@Html.EditorFor(model => model.LastStartDate)

вместо TextBoxFor все работает нормально.

Ответ 3

Вы получите его по тегу type = "date"... тогда он отобразит красивый календарь и все...

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