Se nella mia classe modello ho una proprietà di tipo, DateTime
come posso renderla in un formato specifico, ad esempio nel formato che ToLongDateString()
restituisce?
Ho provato questo ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... che genera un'eccezione perché l'espressione deve puntare a una proprietà o a un campo. E questo...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
... che non genera un'eccezione, ma l'output renderizzato è vuoto (sebbene val
contenga il valore atteso, come ho potuto vedere nel debugger).
Grazie per i suggerimenti in anticipo!
modificare
ToLongDateString
è solo un esempio. Quello che voglio effettivamente usare invece di ToLongDateString
è un metodo di estensione personalizzato di DateTime
e 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 "";
}
Quindi, penso di non poter utilizzare l' DisplayFormat
attributo e il DataFormatString
parametro nelle proprietà ViewModel.