Si j'ai dans ma classe de modèle une propriété de type, DateTime
comment puis-je la rendre dans un format spécifique - par exemple dans le format qui ToLongDateString()
renvoie?
J'ai essayé ça ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... qui lève une exception car l'expression doit pointer vers une propriété ou un champ. Et ça...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
... qui ne lève pas d'exception, mais la sortie rendue est vide (bien qu'elle val
contienne la valeur attendue, comme j'ai pu le voir dans le débogueur).
Merci pour les conseils à l'avance!
Éditer
ToLongDateString
n'est qu'un exemple. Ce que je souhaite utiliser à la place, ToLongDateString
c'est une méthode d'extension personnalisée de DateTime
et DateTime?
:
public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
if (dateTime.TimeOfDay == TimeSpan.Zero)
return dateTime.ToString("d");
else
return dateTime.ToString("g");
}
public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
if (dateTime.HasValue)
return dateTime.Value.FormatDateTimeHideMidNight();
else
return "";
}
Donc, je pense que je ne peux pas utiliser l' DisplayFormat
attribut et le DataFormatString
paramètre sur les propriétés ViewModel.