2011-01-07 20 views
6

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?

risposta

7

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.

2

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) %> 
Problemi correlati