एमवीसी 4 के नए सिंगल पेज एप्लिकेशन टूलींग के साथ खेलते समय, मैंने देखा कि मेरे द्वारा प्राप्त किए गए किसी भी उदाहरण में वेबटाई के माध्यम से डेटटाइम को अपडेट नहीं किया गया है। मुझे जल्द ही पता चला क्यों।एमवीसी 4 सिंगल पेज एप्लिकेशन और डेटटाइम
मैंने प्रदान किए गए टेम्पलेट से मानक एसपीए उत्पन्न करके शुरू किया। मैंने फिर TodoItem.cs खोला और डेटटाइम फ़ील्ड जोड़ा। फिर मैंने टिप्पणियों द्वारा निर्देशित नियंत्रक उत्पन्न किया। (डेटाटाइम फ़ील्ड के बिना, सब कुछ ठीक काम करता है)।
सबकुछ उत्पन्न होने के बाद, मैंने ऐप शुरू किया और नियंत्रक सूचकांक (मैंने नियंत्रक "कार्यों" कहा जाता है) पर नेविगेट किया। मुझे अपेक्षित रूप से 0 रिकॉर्ड्स के साथ ग्रिड पेज मिला और एड बटन पर क्लिक किया गया। मुझे अपेक्षित संपादन पृष्ठ पर ले जाया गया था और मेरे चमकदार नए डेटाटाइम फ़ील्ड में एक तिथि सहित कुछ डेटा दर्ज किया गया था। फिर सहेजें पर क्लिक करें।
कोई त्रुटि उत्पादन किया गया था ने कहा कि:
Server error: HTTP status code: 500, message: There was an error deserializing the object of type System.Web.Http.Data.ChangeSetEntry[]. DateTime content '01/01/2012' does not start with '/Date(' and end with ')/' as required for JSON.
ऐसा लगता है कि टूलींग अभी तक दिनांक समय समर्थन नहीं करता। मुझे यकीन है कि मैं जा सकता हूं और इसे समझने में थोड़ा सा समय बिता सकता हूं, लेकिन मैंने सोचा कि मुझे यहां कुछ भाग्य मिल सकता है जो इस समस्या को पहले ही तय कर चुका है और अंतर्दृष्टि प्रदान कर सकता है।
कोई भी पहले ही इस से जूझ रहा है?
अद्यतन: मैं यह पूछने के बाद से मिली अधिक जानकारी जोड़ रहा हूं। मैंने जेएसओएननेट को मेरे फॉर्मेटर के रूप में नीचे सुझाए गए अनुसार प्रयोग करने का प्रयास किया। मुझे लगता है कि यह अंतिम समाधान होगा, हालांकि, सिफारिश की गई पोस्टर के रूप में बस इतना करना पर्याप्त नहीं है।
This DataController does not support operation 'Update' for entity 'JObject'.
कारण यह है कि पूरी तरह से JSON.Net उद्देश्य यह है कि फ़ॉर्मेटर (सिस्टम को deserailize कोशिश कर रहा है पॉप्युलेट नहीं करता है:
JSON.Net serializer का उपयोग कर, मैं निम्नलिखित त्रुटि मिलती है। Web.Http.Data.ChangeSet)।
json में भेज दिया जाता है वह यह है कि:
[{"Id":"0",
"Operation":2,
"Entity":
{"__type":"TodoItem:#SPADateProblem.Models",
"CreatedDate":"/Date(1325397600000-0600)/",
"IsDone":false,
"Title":"Blah",
"TodoItemId":1},
"OriginalEntity":
{"__type":"TodoItem:#SPADateProblem.Models",
"CreatedDate":"/Date(1325397600000-0600)/",
"IsDone":false,
"Title":"Blah",
"TodoItemId":1}
}]
Json फ़ॉर्मेटर में बनाया इकाई में embeded TodoItem वस्तुओं और OriginalEntity क्षेत्रों के साथ एक ChangeSet वस्तु में इस Json पुनर्गठित करने में सक्षम है।
क्या किसी ने JSON.Net को ठीक से deserialize करने के लिए प्राप्त किया है?
आपकी समस्या को पुन: पेश करने की अनुमति देने वाला कुछ कोड वास्तव में उपयोगी होगा। –
दुर्भाग्य से, मुझे पूरा समाधान प्रदान करने की आवश्यकता होगी। प्रदान किया गया एकल पृष्ठ आवेदन टेम्पलेट बहुत सारे कोड उत्पन्न करता है। त्रुटि को पुन: उत्पन्न करने के लिए, बस एक नया एमवीसी 4 एकल पृष्ठ अनुप्रयोग बनाएं। टूलिंग खत्म हो जाने के बाद, TodoItem.cs खोलें और डेटाटाइम फ़ील्ड जोड़ें। फिर "नियंत्रक" पर राइट क्लिक करें और एक नियंत्रक जोड़ें। इसके लिए एक नाम चुनें, अपने मॉडल के रूप में TodoItem का चयन करें, एसपीए टेम्पलेट और इसे एक नया संदर्भ बनाने दें। एक बार ऐसा करने के बाद, एप्लिकेशन चलाएं और नए नियंत्रक पर नेविगेट करें। जोड़ें पर क्लिक करें और डेटा दर्ज करें, फिर सहेजें पर क्लिक करें। –