Model sınıfımda bir tür özelliği varsa, DateTime
onu 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 ( val
hata 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
ToLongDateString
sadece bir örnektir. Bunun yerine kullanmak istediğim ToLongDateString
şey özel bir uzatma yöntemi DateTime
ve 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 DataFormatString
parametreyi kullanamayacağımı düşünüyorum .