Si j'ai dans ma classe du modèle d'une propriété de type DateTime
comment puis-je l'afficher dans un format spécifique - par exemple dans le format ToLongDateString()
retours?
J'ai essayé cette...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
...ce qui déclenche une exception parce que l'expression doit pointer vers un bien ou d'un champ. Et ce...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
...qui ne lance pas d'exception, mais le rendu de la sortie est vide (bien qu' val
contient la valeur attendue, comme j'ai pu le voir dans le débogueur).
Merci pour les conseils à l'avance!
Modifier
ToLongDateString
n'est qu'un exemple. Ce que je veux réellement à utiliser à la place de ToLongDateString
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
de l'attribut et de l' DataFormatString
paramètre dans le ViewModel propriétés.