Jika saya memiliki di kelas model saya properti tipe DateTime
bagaimana 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 val
berisi nilai yang diharapkan, seperti yang saya lihat di debugger).
Terima kasih atas tip sebelumnya!
Sunting
ToLongDateString
hanyalah sebuah contoh. Apa yang sebenarnya ingin saya gunakan sebagai ganti ToLongDateString
metode ekstensi ubahsuaian DateTime
dan 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 DisplayFormat
atribut dan DataFormatString
parameter pada properti ViewModel.