¿Qué hay de malo en lo siguiente?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date se muestra el 20/11/2005 a las 12:00 a. m. y quiero mostrar el 20 de noviembre de 2011
asp.net-mvc-3
razor
aprendizaje
fuente
fuente
Respuestas:
Tratar:
o puede usar el
[DisplayFormat]
atributo en su modelo de vista:y en su opinión simplemente:
fuente
Esta es la solución:
Antes de ToString () use Value .
fuente
@(item.DOB?.ToString("dd-MMM-yyyy"))
. O usando la propiedad HasValue -@(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
. En ambos casos, la propiedad debe ser datetime que admita valores NULL.Prueba esto en MVC 4.0
fuente
El atributo [DisplayFormat] solo se usa en EditorFor / DisplayFor, y no en las API de HTML sin procesar como TextBoxFor. Lo hice funcionar haciendo lo siguiente,
Modelo:
Ver:
Salida: 30/12/2011
Enlace relacionado:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx
fuente
El siguiente código te ayudará
fuente
Para Razor, coloque el archivo DateTime.cshtml en la carpeta Views / Shared / EditorTemplates. DateTime.cshtml contiene dos líneas y produce un TextBox con una fecha formateada el 11/9/2001.
fuente
En general, el mes escrito se escapa como MMM, el año de 4 dígitos como yyyy, por lo que su cadena de formato debe verse como "dd MMM yyyy".
fuente
No pude hacer que esto funcionara completamente según las sugerencias anteriores. La inclusión de DataTypeAttribute
[DataType(DataType.Date)]
pareció resolver mi problema, consulte:Modelo
Ver
HTH
fuente
Para toda la solución dada, cuando pruebe esto en un navegador moderno (como FF), y haya configurado el modelo correcto
mvc (5) se renderizará (el tipo de entrada se establece hasta la fecha según la configuración de fecha en su modelo)
Y el navegador mostrará
Para solucionar esto, debe cambiar el tipo a texto en lugar de fecha (también si desea usar su calendario personalizado)
fuente