2011-09-26 11 views
10

के लिए डेटाफॉर्मैटस्ट्रिंग सेट करें मुझे एमवीसी 3 DateTime ऑब्जेक्ट का उपयोग करके दिनांक सही तरीके से प्रदर्शित करने में कुछ समस्या है।एमवीसी 3 डेटटाइम

नियंत्रक में, मैंने Date = DateTime.Now सेट किया है।

ViewModel में:

[Required(ErrorMessage = "Please enter a date")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")] 
public DateTime Date { get; set; } 

देखें में:

@Html.LabelFor(m => Model.Date, "Date") 
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" }) 

आउटपुट:

<input class="datepicker" (...) value="26.09.2011 13:26:16" /> 

हालांकि, मैं मूल्य 26.09.11 होना चाहता हूँ।

यह क्यों काम नहीं करता है?

उत्तर

3

आपका ViewModel सही (केवल एक चीज आप "yy" का उपयोग करने के लिए यदि आप सी # में कम साल दिखाना चाहते हैं की जरूरत है), लेकिन मुझे समझ नहीं आता क्या आप इस कोड

@Html.LabelFor(m => Model.Date, "Date") 
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" }) 

मैं के साथ क्या करते हो बताएंगे कि कैसे मैं datepickerdate शो जोड़ने के लिए, इस उदाहरण में और देखने से लौटने सही स्वरूप में:

@Html.EditorFor(m => m.Date) 
    @Html.ValidationMessageFor(m => m.Date) 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#Date').datepicker({ firstDay: 1, dateFormat: 'dd.mm.yy', clickInput: true }); 
     }); 
    </script> 
17

परिवर्तन

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")] 

को
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yy}")] 

फिर, textboxfor के बजाय,

@Html.EditorFor(m => m.Date) 
+0

अच्छा जवाब का उपयोग करें! क्या यह समस्या टेक्स्टबॉक्स के साथ स्वयं थी। मुझे यह स्ट्रिंग प्रारूप के लिए उपयोगी संसाधन माना जाता है जिसे आप संदर्भ के लिए उपयोगी पा सकते हैं: http://www.maconstateit.net/tutorials/aspnet20/ASPNET02/aspnet02-07.aspx – Sparkle

+1

चूंकि '{0: dd.mm .yyyy} 'समय शामिल है,' {0: dd.mm.yy} 'भी नहीं होगा? –

+0

हां यह होगा। प्रारूप स्ट्रिंग {0: dd.MM.yyyy} या {0: dd.MM.yy} होना चाहिए। – Suncat2000