Fecha solo de TextBoxFor()
Tengo problemas para mostrar la única parte de fecha de DateTime en un cuadro de texto usando TextBoxFor<,>(expresión, htmlAttributes).
El modelo se basa en Linq2SQL, el campo es DateTime en SQL y en el modelo de entidad.
Fallido:
<%= Html.TextBoxFor(model => model.dtArrivalDate, String.Format("{0:dd/MM/yyyy}", Model.dtArrivalDate))%>
Este truco parece estar depreciado, se ignora cualquier valor de cadena en el objeto htmlAttribute.
Fallido:
[DisplayFormat( DataFormatString = "{0:dd/MM/yyyy}" )]
public string dtArrivalDate { get; set; }
Me gustaría almacenar y mostrar solo la parte de la fecha en la vista de detalles/edición, sin la parte "00:00:00".
Aceptado
MVC4 resolvió este problema agregando una nueva TextBoxFor
sobrecarga, que toma un parámetro de formato de cadena. Ahora puedes simplemente hacer esto:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}")
También hay una sobrecarga que toma atributos html, por lo que puedes configurar la clase CSS, conectar selectores de fechas, etc.:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}", new { @class="input-large" })
<%= Html.TextBoxFor(model => model.EndDate, new { @class = "jquery_datepicker", @Value = Model.EndDate.ToString("dd.MM.yyyy") })%>
[DisplayName("Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime StartDate { get; set; }
Entonces:
<%=Html.EditorFor(m => m.StartDate) %>