मुझे एएसपी.नेट एमवीसी 4 आरसी वेब एपीआई में एक अजीब बाध्यकारी समस्या माना जाता है। मेरे पास क्लाइंट से पोस्ट अनुरोध स्वीकार करने का एक तरीका है। मुद्दा यह है कि पोस्ट विधि कहने पर पैरामीटर में से कोई भी बाध्यकारी नहीं है, मैं फेंक लाइन और नाम पर अपने ब्रेक पॉइंट पर जाता हूं, ईमेल दोनों शून्य हैं। अगर मैं जावास्क्रिप्ट में जीईटी के अनुरोध को बदलता हूं, तो नीचे दिए गए फ़ंक्शन को पैरामीटर के साथ बुलाया जाता है।एएसपी.नेट एमवीसी 4 आरसी वेब एपीआई पैरामीटर बाइंडिंग इश्यू
पोस्ट विधि के लिए बाध्य करने में विफलता पैरामीटर क्यों हैं, और मैं इसे कैसे ठीक कर सकता हूं?
send: function(evt) {
evt.preventDefault();
$.ajax({
url: '/api/person',
data: this.model.toJSON(),
type: "POST",
dataType: "json",
success: function(data) {
console.log("Success");
},
error: function(data) {
console.log("Error");
}
});
}
निम्नलिखित नियंत्रक क्रियाएँ है:
public void Get(string name, string email) {
throw new NotImplementedException();
}
public void Post(string name, string email) {
throw new NotImplementedException();
}
नोट्स:
- मैं ASP.NET MVC 4 आर सी वेब एपीआई के लिए डिफ़ॉल्ट (तो deserializer के सभी उपयोग कर रहा हूँ Json.NET होना चाहिए)
- जेएस डीबगर पर क्रोम नेटवर्क टैब सही ढंग से पोस्ट डेटा में पैरामीटर दिखाता है।
मेरा प्राप्त पैरामीटर शून्य नहीं है, वास्तव में यह भी अस्तित्व में नहीं है। मैं स्पष्ट नहीं हो सकता था लेकिन यह केवल यह बताने के लिए है कि कार्यक्षमता जीईटी पर काम करती है और पोस्ट पर नहीं होती है। – Cody
ठीक है - ठीक है, तो यह ठीक है :)। संक्षेप में, हालांकि, यदि आप अनुरोध के शरीर से कई पैरामीटर बाध्य कर रहे हैं, तो मूल रूप से सबसे आसान काम यह है कि मैंने दिखाया है कि एक साधारण मॉडल प्रकार लिखना है। –
माइक स्टाल लेख लिंक के लिए धन्यवाद, यह क्या हो रहा है के बारे में बहुत जानकारीपूर्ण था। मैंने अभी माना था कि वेब एपीआई ने एमवीसी के समान सटीक बाध्यकारी रणनीति का उपयोग किया था। परम प्राप्त करने के लिए एक कस्टम क्लास बनाना एक आकर्षण की तरह काम करता है, मैं उस समाधान का प्रशंसक नहीं हूं लेकिन मुझे पता नहीं लगा कि क्यों, इसलिए मैं शायद जिद्दी हूं। :) किसी भी मामले में यह समाधान है जिसका मैं उपयोग करूंगा। धन्यवाद!:) – Cody