पर मूल्य वापस पास करते समय एएसपी.नेट एमवीसी डेटाटाइम संस्कृति समस्या, मैं अपने नियंत्रक/मॉडल को कैसे बता सकता हूं कि डेटाटाइम को पार्स करने के लिए किस तरह की संस्कृति की अपेक्षा करनी चाहिए?नियंत्रक
मैं अपने एमवीसी आवेदन में jquery datepicker को लागू करने के लिए this post का उपयोग कर रहा था।
जब मैं तारीख जमा करता हूं तो यह "अनुवाद में खो जाता है" मैं तारीख के लिए यूएस स्वरूपण का उपयोग नहीं कर रहा हूं, इसलिए जब यह मेरे नियंत्रक को भेजा जाता है तो यह बस शून्य हो जाता है।
मैं एक रूप जहाँ उपयोगकर्ता एक तारीख चुनता है:
@using (Html.BeginForm("List", "Meter", FormMethod.Get))
{
@Html.LabelFor(m => m.StartDate, "From:")
<div>@Html.EditorFor(m => m.StartDate)</div>
@Html.LabelFor(m => m.EndDate, "To:")
<div>@Html.EditorFor(m => m.EndDate)</div>
}
मैं इस के लिए एक संपादन टेम्पलेट बनाया है, jQuery datepicker लागू करने के लिए:
@model DateTime
@Html.TextBox("", Model.ToString("dd-MM-yyyy"), new { @class = "date" })
मैं तो datepicker बनाने इस तरह के विजेट।
$(document).ready(function() {
$('.date').datepicker({ dateFormat: "dd-mm-yy" });
});
यह सब ठीक काम करता है।
वह स्थान है जहां समस्याओं शुरू, यह मेरा नियंत्रक है:
[HttpGet]
public ActionResult List(DateTime? startDate = null, DateTime? endDate = null)
{
//This is where startDate and endDate becomes null if the dates dont have the expected formatting.
}
यही कारण है कि मैं किसी भी तरह मेरी नियंत्रक बताने के लिए संस्कृति यह उम्मीद करनी चाहिए चाहते हैं? क्या मेरा मॉडल गलत है? क्या मैं किसी भी तरह से यह बता सकता हूं कि कौन सी संस्कृति का उपयोग करना है, डेटा एनोटेशन विशेषताओं के साथ?
public class MeterViewModel {
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime EndDate { get; set; }
}
संपादित करें: this link मेरी समस्या और अच्छी तरह से इसे करने के लिए एक बहुत अच्छा समाधान बताते हैं। Gdoron
उपयोग एक सब के लिए प्रारूप: इस सरल दृष्टिकोण मुझे वांछित स्थान में मॉडल में प्रबलता से टाइप किये तारीख, शो कार्रवाई लिंक और संपादन फ़ील्ड का उपयोग करें और एक जोरदार टाइप किया दिनांक समय में वापस सब पर उपद्रव करने की यह बाध्यकारी नहीं करने की अनुमति दी अनुरोध। http://stackoverflow.com/a/28219557/960997 – rnofenko
@fomaa अब मैं [altField] (http://api.jqueryui.com/datepicker/#option-altField) और [altFormat] के साथ डेटपिकर का उपयोग करता हूं (http://api.jqueryui.com/datepicker/#option-altFormat) दिनांक के एक संस्कृति इनवेरिएंट संस्करण के साथ एक छिपे हुए क्षेत्र की आपूर्ति करने के विकल्प (जैसा कि आप उल्लेख करते हैं ISO8601)। फिर इसके बजाय उस क्षेत्र को सबमिट करना, मुझे लगता है कि यह एक बेहतर समाधान है। – FRoZeN