मैं एएसपी.NET एमवीसी में अपने नियंत्रकों को पोस्ट करते समय मानक क्वेरीरीटिंग के विपरीत जेएसओएन भेजने में सक्षम होना चाहता हूं। मेरे पास फ़्रंट-एंड सामान ठीक काम कर रहा है (इमारत और फिर मेरे JSON ऑब्जेक्ट्स सबमिट कर रहा है)।एएसपी.नेट एमवीसी: नियंत्रक को JSON भेजना
समस्या नियंत्रक पक्ष पर है जहां एमवीसी ढांचे के साथ जहाज वाले डिफ़ॉल्ट मॉडलबिंडर्स इसका समर्थन नहीं करते हैं।
मैं इस के आसपास तरीके का एक संयोजन देखा है, उनमें से एक एक फिल्टर जो एक पैरामीटर के रूप वस्तु लेता है लागू करने के लिए है, यह डी-serialise करने के लिए एक JSON पुस्तकालय का उपयोग करता है, और है कि कहते हैं कार्रवाई मानकों करने के लिए। यह आदर्श नहीं है।
अन्य, बेहतर, तरीका कस्टम मॉडल बाइंडर का उपयोग करना है। हालांकि मैंने देखा है कि आपके पास केवल एक मॉडल होगा और यह एक चर के बजाय एक वर्ग होगा। यदि आपके पास एकाधिक हैं तो यह टूट जाता है।
क्या किसी और को इसका सामना करना पड़ा है? एक विचार यह था कि अगर मैं एमवीसी फॉर्मकोलेक्शन से कैसे निपटता हूं और वहां पर रोक लगाता हूं, तो मैं बस ओवरराइड कर सकता हूं, संग्रह को मूल्य जोड़ रहा हूं और उम्मीद कर रहा हूं कि एमवीसी बाकी के सामान्य फैशन में बाकी कर सकता है। क्या किसी को पता है कि यह संभव है?
मुख्य समस्या, मुझे लगता है कि, मेरी समस्या बाध्यकारी नहीं है क्योंकि मेरे दृश्य मॉडल इससे पहले कि वे कहां से अलग नहीं हैं। समस्या JSON पोस्ट से मान प्राप्त कर रही है।
यदि मैं सही एमवीसी हूं तो QueryString से मान प्राप्त करें और इसे फॉर्म संग्रह में डाल दें जिसका उपयोग मॉडलबाइंडिंग के लिए किया जाता है। तो फॉर्मकोलेक्शन को असाइन करने के तरीके को बदलने का सही तरीका नहीं होना चाहिए? एक कार्रवाई के
उदाहरण:
public ActionResult MyFirstAction(Int32 ID, PersonObject Person, ClassObject ClassDetails)
{
//etc
}
सामान्य बाध्यकारी काम करता है, JSON भी नहीं और मॉडल बाइंडर के सभी उदाहरण काम नहीं करेगा करता है। मेरा सबसे अच्छा समाधान अब तक ऑब्जेक्ट को एक शब्दकोश और लूप में परिवर्तित करना है, हालांकि प्रत्येक परम और इसे मेल खाता है। आदर्श प्रतीत नहीं होता है।
यदि आप इसे वोट देने जा रहे हैं तो क्या आप समझा सकते हैं? – Damien
क्षमा करें, दुर्भाग्य से, जब मैं पसंदीदा स्टार पर क्लिक करने के लिए गया, तो मैंने गलती से डाउन वोट पर क्लिक किया, यहां तक कि मैंने इसे पहले से ही ऊपर उठाया था (यही कारण है कि यह 5 से 3 तक चला गया)। और अब मैंने गलती से जो किया है उसे पूर्ववत करने की कोशिश करने के तुरंत बाद कहा, कि जब तक सवाल संपादित नहीं हो जाता, तब तक मेरा वोट बदलने में बहुत देर हो गई। यदि आप इस सवाल को संपादित करते हैं तो मैं खुशी से अपना वोट ठीक कर दूंगा। – jamesaharvey
कोई समस्या नहीं! यह मेरे साथ भी कई बार होता है। – Damien