Ho ottenuto una proprietà nel mio modello che è un DateTime
. Vorrei ottenere uno <input />
vuoto (anziché uno contenente '0001-01-01 00:00:00') se la proprietà contiene DateTime.MinValue
.Html.EditorFor e formato personalizzato
È possibile?
Ho ottenuto una proprietà nel mio modello che è un DateTime
. Vorrei ottenere uno <input />
vuoto (anziché uno contenente '0001-01-01 00:00:00') se la proprietà contiene DateTime.MinValue
.Html.EditorFor e formato personalizzato
È possibile?
Una soluzione che ho trovato a lavorare per me è stato quello di aggiungere fortemente tipizzato vista parziale (per System.DateTime
) e metterlo nella directory Views/Shared/EditorTemplates
. File DateTime.cshtml
sembra più o meno in questo modo:
@model System.DateTime
@Html.TextBox("", Model == DateTime.MinValue ? "" : Model.ToShortDateString())
Ciò tuttavia formattare tutti i vostri campi DateTime.
Ulteriori informazioni sono disponibili nell'articolo this.
Scrivi un metodo extension helper:
public static class DateTimeHelper
{
public static string MyEditor(this HtmlHelper helper, DateTime date)
{
if (date.Equals(DateTime.MinValue))
{
// return your an empty input: helper.TextBox ...
}
// return helper.EditorFor your datetime
}
}
Poi, da visualizzare:
<%= Html.MyEditor(Model.YourDateTimeField) %>