Model sınıfımda bir tür özelliği varsa, DateTimeonu belirli bir formatta - örneğin ToLongDateString()dönen formatta - nasıl işleyebilirim ?
Bunu denedim ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... ifade bir özelliğe veya alana işaret etmesi gerektiğinden bir istisna atar. Ve bu...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
... bu bir istisna oluşturmaz, ancak işlenen çıktı boştur ( valhata ayıklayıcıda görebildiğim gibi beklenen değeri içermesine rağmen ).
Önceden ipuçları için teşekkürler!
Düzenle
ToLongDateStringsadece bir örnektir. Bunun yerine kullanmak istediğim ToLongDateStringşey özel bir uzatma yöntemi DateTimeve 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 "";
}
Dolayısıyla, ViewModel özelliklerinde DisplayFormatözniteliği ve DataFormatStringparametreyi kullanamayacağımı düşünüyorum .