Мне интересно, как вставить атрибуты <input type="date"/>
для datetime моей модели.
На данный момент Razor создает простой элемент ввода с type="datetime"
. Я хочу использовать новые типы ввода HTML5.
MVC 4 Razor добавляет дату ввода типа
Ответ 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" })