MVC

2013-07-09 6 views
6

में datetime चर-समय हिस्से को हटाने के लिए मेरी नजर में मैं एक दिनांक फ़ील्ड (जो Jquery तिथि चयनकर्ता के लिए प्रयोग किया जाता) है,MVC

@if (Model != null) 
{ 
    if (Model.SubmitStartDate == DateTime.MinValue) 
    { 
    Model.SubmitStartDate = null; 
    }      
    @Html.TextBoxFor(m => m.SubmitStartDate , new { @Id = "SubmitStartDate", @readonly = "readonly", @Value = @Model.SubmitStartDate}) 
} 

मेरी मॉडल में मेरे पास है:

[Required(ErrorMessage = "Please select a start date")] 
[DisplayFormat(DataFormatString = "{0:d}")] 
public DateTime? SubmitStartDate { get; set; } 

हालांकि यूआई में मुझे 10/07/2013 00:00:00 लोड पर, मैं इस से समय का हिस्सा कैसे हटा सकता हूं। इसके अलावा मुझे प्रारूप "डीडी-एमएम-वाई" प्रारूप में दिनांक की आवश्यकता है। क्या यह हासिल करना संभव है?

अद्यतन

मैं जवाब के अनुसार मेरी कोड संपादित, और मुझे मिल गया यह आवश्यकता के अनुसार काम किया, लेकिन मैं एक समस्या मिला है।

जब मैं @Html.EditorFor() का उपयोग करता हूं तो मेरी readonly संपत्ति अब और काम नहीं करेगी। मैंने DisplayFor के साथ भी कोशिश की, हालांकि यह समझ में नहीं आता क्योंकि मैं इसे जे-क्वेरी दिनांक पिकर के लिए उपयोग कर रहा था। क्या कोई रास्ता है कि मैं केवल उस क्षेत्र को पढ़ने के लिए कर सकता हूं?

अद्यतन कोड:

@if (Model != null) 
{ 
    if (Model.SubmitStartDate == DateTime.MinValue) 
    { 
    Model.SubmitStartDate = null; 
    }      
    @Html.EditorFor(m => m.SubmitStartDate , new { type = "date", @Id = "SubmitStartDate", @readonly = "readonly", @Value = @Model.SubmitStartDate}) 
} 

उत्तर

15

आप एक @Html.TextBoxFor() सहायक जो अपने DisplayFormat विशेषता पर ध्यान नहीं देगा का उपयोग कर रहे हैं। इसे @Html.EditorFor() पर बदलें और आपका प्रदर्शनफॉर्मैट लागू किया जाएगा।

और अपने स्वरूप प्राप्त:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yy}")] 
public DateTime? SubmitStartDate { get; set; } 
+3

और DataFormatString बदलने के लिए "{0: dd-mm-yyyy}" –

+1

बस पूर्णता 'खातिर: अगर आप केवल समय हिस्से को हटाने की जरूरत है (मुझे पता है, यह नहीं अपने ही आवश्यकता है), विशेषता जोड़ें '[डेटाटाइप (डेटाटाइप.डेट)] ' –

+0

उत्तर के लिए धन्यवाद, या वास्तव में यह आकर्षण की तरह काम करता है :) हालांकि जब मैं संपादनfor' @ Html.EditorFor (m = का उपयोग करता हूं, तो मेरी केवल पढ़ने वाली संपत्ति अब और काम नहीं कर रही है। > m.SubmitStartDate, नया {type = "date", @Id = "SubmitStartDate", @readonly = "readonly", @Value = @ Model.SubmitStartDate}) ' – TBA

1

यहाँ कैसे मैं क्रम में सामान्य रूप से प्रारूप डेटा एनोटेशन दोनों क्रोम और IE में काम करने के लिए है।

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
public DateTime StartDate { get; set; } 

@Html.EditorFor(m => m.StartDate, new { type = "date" })