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 zone de texte avec la date, j'ai ceux-ci:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Chaque fois que la date est affichée, elle est affichée comme suit: 01/01/2011 00:00:00
Mais je voudrais seulement afficher 01/01/2011
Est-il possible d'appliquer un format d'affichage avec des annotations de données? Je ne veux pas avoir à aller dans tous les cas où j'affiche une date et ajoute du code pour la formater.
Essayez de le marquer avec:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Avez-vous essayé cela?
[DataType(DataType.Date)]
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 un modèle ou une classe de modèle de vue.
Si votre champ de données est déjà un type de données DateTime, vous n'avez pas besoin d'utiliser [DataType(DataType.Date)]
pour l'annotation; juste utiliser:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
sur jQuery, utilisez datepicker pour votre calendrier
$(document).ready(function () {
$('#StartDate').datepicker();
});
sur votre code HTML, utilisez EditorFor
helper:
@Html.EditorFor(model => model.StartDate)
Appliquez DataAnnotation comme:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Utilisez ceci, mais c'est une solution complète:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
Utilisez EditorFor plutôt que TextBoxFor
Après avoir commenté
// [DataType(DataType.DateTime)]
Utilisez l'attribut d'annotation de données:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
L'étape 7 du lien suivant peut vous aider ...
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
définissez votre propriété en utilisant le code ci-dessous au moment de la création du modèle, je pense que votre problème sera résolu .. et que l'heure n'apparaît pas dans la base de données. Vous n'avez pas besoin d'ajouter une annotation.
private DateTime? dob;
public DateTime? DOB
{
get
{
if (dob != null)
{
return dob.Value.Date;
}
else
{
return null;
}
}
set { dob = value; }
}
Ça marche pour moi
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]