Se nella mia classe modello ho una proprietà di tipo, DateTimecome 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 valcontenga 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 DateTimee 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' DisplayFormatattributo e il DataFormatStringparametro nelle proprietà ViewModel.