c# - fecha - Asignar formato de DateTime con anotaciones de datos?
formato fecha datetime c# (9)
¿Has intentado esto?
[DataType(DataType.Date)]
Tengo este atributo en mi modelo de vista:
[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }
Si quiero mostrar la fecha, o llenar un cuadro de texto con la fecha, tengo estos:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Cada vez que se muestra la fecha, se muestra como: 01/01/2011 12:00:00 AM
Pero me gustaría mostrar solo 01/01/2011
¿Hay alguna manera de aplicar un formato de visualización con anotaciones de datos? No quiero tener que ir a cada instancia donde muestre una fecha, y agregar algún código para formatearlo.
Aplicar DataAnnotation como:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Después de comentar
// [DataType(DataType.DateTime)]
Use el atributo de anotación de datos:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
El PASO-7 del siguiente enlace puede ayudarte ...
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
En mvc 4 puedes hacerlo fácilmente siguiendo las siguientes TextBoxFor
usando TextBoxFor
..
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
Por lo tanto, no necesita utilizar ninguna anotación de datos en el modelo o ver la clase de modelo
Intenta etiquetarlo con:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Si su campo de datos ya es un tipo de datos DateTime, no necesita usar [DataType(DataType.Date)]
para la anotación; Solo usa:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
en jQuery, usa datepicker para tu calendario
$(document).ready(function () {
$(''#StartDate'').datepicker();
});
en su HTML, use EditorFor
helper:
@Html.EditorFor(model => model.StartDate)
Usa esto, pero es una solución completa:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
Use EditorFor en lugar de TextBoxFor
establezca su propiedad usando el código siguiente al momento de la creación del modelo, creo que su problema será resuelto ... y el tiempo no aparece en la base de datos. No necesita agregar ninguna anotación.
private DateTime? dob;
public DateTime? DOB
{
get
{
if (dob != null)
{
return dob.Value.Date;
}
else
{
return null;
}
}
set { dob = value; }
}