Ho questo attributo nel mio modello di vista:
[DataType(DataType.DateTime)] public DateTime? StartDate { get; set; }
Se voglio visualizzare la data, o popolare una casella di testo con la data, ho questi:
m.StartDate) %>
Ogni volta che viene visualizzata la data, viene visualizzata come: 01/01/2011 12:00:00
Ma mi piacerebbe solo visualizzare 01/01/2011
C’è un modo per applicare un formato di visualizzazione con annotazioni di dati? Non voglio dover passare a tutte le istanze in cui visualizzo una data e aggiungere del codice per formattarlo.
Prova a taggarlo con:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Hai provato questo?
[DataType(DataType.Date)]
In mvc 4 puoi farlo facilmente seguendo il TextBoxFor
con TextBoxFor
..
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
Pertanto, non è necessario utilizzare alcuna annotazione di dati nel modello o visualizzare la class del modello
Applica DataAnnotazione come:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Se il campo dati è già un tipo di dati DateTime, non è necessario utilizzare [DataType(DataType.Date)]
per l’annotazione; basta usare:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
su jQuery, usa datepicker per il tuo calendario
$(document).ready(function () { $('#StartDate').datepicker(); });
sul tuo HTML, usa EditorFor
helper EditorFor
:
@Html.EditorFor(model => model.StartDate)
Usa questo, ma è una soluzione completa:
[DataType(DataType.Date)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
Utilizza EditorFor anziché TextBoxFor
Dopo aver commentato
// [DataType(DataType.DateTime)]
Utilizzare l’attributo di annotazione dei dati:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
STEP-7 del seguente link può aiutarti …
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
imposta la tua proprietà usando il codice sottostante al momento della creazione del modello, penso che il tuo problema sarà risolto … e l’ora non verrà visualizzata nel database. Non devi aggiungere alcuna annotazione.
private DateTime? dob; public DateTime? DOB { get { if (dob != null) { return dob.Value.Date; } else { return null; } } set { dob = value; } }