115 votes

Attribuer le format DateTime avec des annotations de données ?

J'ai cet attribut dans mon modèle de vue :

[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }

Si je veux afficher la date, ou remplir une boîte de texte avec la date, j'ai ces éléments :

<%: Model.StartDate %>

<%: Html.TextBoxFor(m => m.StartDate) %>

Chaque fois que la date est affichée, elle est affichée comme suit : 01/01/2011 12:00:00 AM

Mais j'aimerais n'afficher que 01/01/2011

Existe-t-il un moyen d'appliquer un format d'affichage avec des annotations de données ? Je ne veux pas avoir à aller dans chaque cas où j'affiche une date, et ajouter du code pour la formater.

170voto

David Points 6057

Essayez de l'étiqueter avec :

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]

61voto

rk1962 Points 375

Avez-vous essayé cela ?

[DataType(DataType.Date)]

27voto

Hasib Hasan Arnab Points 2361

Dans mvc 4, vous pouvez facilement le faire comme suit en utilisant TextBoxFor ..

@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })

Il n'est donc pas nécessaire d'utiliser une annotation de données dans la classe de modèle ou de modèle de vue.

23voto

Toddt Points 259

Si votre champ de données est déjà de type DateTime, vous n'avez pas besoin d'utiliser la fonction [DataType(DataType.Date)] pour l'annotation ; il suffit d'utiliser :

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]

sur jQuery, utilisez datepicker pour votre calendrier

    $(document).ready(function () {
        $('#StartDate').datepicker();
    });

sur votre HTML, utilisez EditorFor aide :

    @Html.EditorFor(model => model.StartDate)

19voto

Chirag Points 408

Appliquer DataAnnotation comme :

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X