Используйте @ Html.EditorFor (m => m.DateModified), потому что в противном случае атрибут DisplayFormat не будет иметь эффекта.
Чтобы добавить дополнительные атрибуты, такие как класс CSS, необходимо создать шаблон редактора дляDateTime.Создайте файл EditorTemplates / DateTime.cshtml со следующим содержимым:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new
{
@class="date"
})
Обратите внимание, что значение TextBox устанавливается не непосредственно для модели, а для TemplateInfo.FormattedModelValue , потому что это значение будет отформатировано в соответствии с атрибутом DisplayFormat, а модель - нет.(Это заняло у меня довольно много времени, чтобы понять. :))
В простых случаях этого может быть достаточно, например, если класс CSS может быть одинаковым для всех редакторов дат.
Если вы хотитечтобы параметризовать атрибут, вы также можете сделать это, передав параметр-значение атрибута в EditorFor.
@Html.EditorFor(m => m.DateModified, new { @class = "someClass" })
Однако этот параметр не будет автоматически делегирован элементу управления HTML как атрибут, но вы должны явно «обработать» его в шаблоне.Согласно моему опыту, вы можете получить доступ к значению этого параметра в ViewData в шаблоне, поэтому параметризованный шаблон выглядит следующим образом:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new
{
@class=ViewData["class"]
})