Quel est le problème avec ce qui suit?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date s'affiche le 20/11/2005 à minuit et je veux afficher le 20 novembre 2011
asp.net-mvc-3
razor
apprentissage
la source
la source
Réponses:
Essayer:
ou vous pouvez utiliser l'
[DisplayFormat]
attribut sur votre modèle de vue:et à votre avis simplement:
la source
Voici la solution:
Avant ToString (), utilisez Value .
la source
@(item.DOB?.ToString("dd-MMM-yyyy"))
. Ou en utilisant la propriété HasValue -@(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
. Dans les deux cas, la propriété doit être datetime Nullable.Essayez ceci dans MVC 4.0
la source
L'attribut [DisplayFormat] n'est utilisé que dans EditorFor / DisplayFor, et non par les API HTML brutes telles que TextBoxFor. Je l'ai fait fonctionner en faisant ce qui suit,
Modèle:
Vue:
Sortie: 30/12/2011
Lien connexe:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx
la source
Le code ci-dessous vous aidera
la source
Pour Razor, placez le fichier DateTime.cshtml dans le dossier Views / Shared / EditorTemplates. DateTime.cshtml contient deux lignes et produit un TextBox avec une date au format 9/11/2001.
la source
En général, le mois écrit est échappé comme MMM, l'année à 4 chiffres comme aaaa, donc votre chaîne de format doit ressembler à "jj MMM aaaa"
la source
Je n'ai pas été en mesure de faire fonctionner cela entièrement sur la base des suggestions ci-dessus. L'inclusion de DataTypeAttribute a
[DataType(DataType.Date)]
semblé résoudre mon problème, voir:Modèle
Vue
HTH
la source
Pour toute la solution donnée, lorsque vous essayez ceci dans un navigateur moderne (comme FF) et que vous avez défini le bon modèle
mvc (5) sera rendu (le type d'entrée est défini sur la date en fonction de vos paramètres de date dans votre modèle!)
Et le navigateur affichera
Pour résoudre ce problème, vous devez changer le type en texte au lieu de date (également si vous souhaitez utiliser votre calendrier personnalisé)
la source