यदि मेरे मॉडल वर्ग में मेरे पास संपत्ति का प्रकार है तो DateTimeमैं इसे एक विशिष्ट प्रारूप में कैसे प्रस्तुत कर सकता हूं - उदाहरण के लिए प्रारूप में जो ToLongDateString()रिटर्न देता है?
मैंने यह कोशिश की है ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... जो एक अपवाद फेंकता है क्योंकि अभिव्यक्ति को एक संपत्ति या क्षेत्र को इंगित करना चाहिए। और इस...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
... जो एक अपवाद नहीं फेंकता है, लेकिन प्रदान किया गया आउटपुट खाली है (हालांकि valइसमें अपेक्षित मूल्य शामिल है, जैसा कि मैं डिबगर में देख सकता था)।
अग्रिम में सुझावों के लिए धन्यवाद!
संपादित करें
ToLongDateStringकेवल एक उदाहरण है। इसके बजाय मैं वास्तव में जो उपयोग करना चाहता हूं ToLongDateStringवह है एक कस्टम एक्सटेंशन विधि DateTimeऔर 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 "";
}
इसलिए, मुझे लगता है कि मैं ViewModel गुणों पर DisplayFormatविशेषता और DataFormatStringपैरामीटर का उपयोग नहीं कर सकता ।