Jika saya memiliki di kelas model saya properti tipe DateTimebagaimana saya bisa membuatnya dalam format tertentu - misalnya dalam format yang ToLongDateString()mengembalikan?
Saya sudah mencoba ini ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... yang memunculkan pengecualian karena ekspresi harus mengarah ke properti atau bidang. Dan ini...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
... yang tidak memunculkan pengecualian, tetapi keluaran yang diberikan kosong (meskipun valberisi nilai yang diharapkan, seperti yang saya lihat di debugger).
Terima kasih atas tip sebelumnya!
Sunting
ToLongDateStringhanyalah sebuah contoh. Apa yang sebenarnya ingin saya gunakan sebagai ganti ToLongDateStringmetode ekstensi ubahsuaian DateTimedan 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 "";
}
Jadi, saya rasa saya tidak dapat menggunakan DisplayFormatatribut dan DataFormatStringparameter pada properti ViewModel.