Uso @ Html.EditorFor (m => m.DateModified), porque de lo contrario el atributo formatSalida no tendrá ningún efecto.
Para agregar más atributos como una clase de CSS, debe crear una plantilla de editor para DateTime. Crear un archivo EditorTemplates/DateTime.cshtml con el siguiente contenido:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new
{
@class="date"
})
Tenga en cuenta que el valor del cuadro de texto no se ajusta con el modelo directamente, sino más bien con la TemplateInfo.FormattedModelValue, debido a que el valor se formateará según el atributo DisplayFormat mientras que el modelo no. (Esto me llevó bastante tiempo darme cuenta. :))
En casos simples, esto podría ser suficiente, p. si la clase CSS puede ser la misma para todos los editores de fecha.
Si desea parametrizar el atributo, puede hacerlo también, pasando el parámetro de valor de atributo al EditorPara.
@Html.EditorFor(m => m.DateModified, new { @class = "someClass" })
Sin embargo, este parámetro no será delegada a automágicamente el control HTML como atributo, pero hay que "manejar" en la plantilla de forma explícita. De acuerdo a mi experiencia se puede acceder a este valor de parámetro en el ViewData en la plantilla, por lo que la plantilla parametrizada se ve así:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new
{
@class=ViewData["class"]
})
Gracias por esta pregunta, yo estaba teniendo un pequeño problema diff , pero la explicación que brindó en su pregunta también me ayudó. No sabía que en el método EditoFor, no puedo dar atributos html, y el enlace del modelo estaba funcionando de manera horrible en mi caso ... gracias de nuevo. –