2012-02-11 14 views
6

में JQuery से नियंत्रक कार्रवाई से पैरामीटर पास करना मेरे पास एक वेब पेज है जो बैकएंड के साथ संवाद करने के लिए JQuery का उपयोग कर रहा है। मेरे पास कुछ पोस्ट क्रियाएं हैं I हालांकि, अब मुझे एक GET कार्रवाई है और मैंने देखा है कि इसके पास पारित पैरामीटर मान शून्य हैं। मेरे पोस्ट क्रियाएं ठीक काम करती हैं। मैं समझ नहीं सकता क्यों।एएसपी.नेट एमवीसी 3

मेरी .html फ़ाइल से, मैं निम्नलिखित JQuery प्रश्न हैं:

var vm = { emailAddress:"[email protected]" }; 
$.ajax({ 
    url: "/myService/myAction", 
    type: "GET", 
    data: JSON.stringify(vm), 
    contentType: "application/json", 
    success: myAction_Succeeded, 
    error: myAction_Failed 
}); 

मेरी नियंत्रक में, मेरे पास है:

public class MyServiceController : Controller 
{ 
    [AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult MyAction(string emailAddress) 
    { 
    return Json(new { address:emailAddress }); 
    } 
} 

मेरे मार्ग सेटअप है इस प्रकार है:

context.MapRoute(
    "MyAction", 
    "myService/{controller}/MyAction", 
    new { controller = "MyService", action = "MyAction" } 
); 

मुझे एक झटका है कि मुझे अपने रास्ते में कुछ याद आ रहा है। लेकिन मुझे यकीन नहीं है कि यह क्या है। मैंने उसी पोस्टमैक्स का पालन किया जो मैंने अपने पोस्ट कार्यों के साथ किया था। उन कार्यों के साथ पैरामीटर बस ठीक काम करते हैं। लेकिन मेरे जीईटी कार्यों के साथ पैरामीटर, ऊपर दिए गए की तरह, शून्य मान हैं। मेरा सवाल है, मैं गलत क्या कर रहा हूं और क्या होगा यदि मुझे एकाधिक पैरामीटर पारित करने की आवश्यकता है?

आपकी मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

4

जेसनवेल्यूप्रोवाइडर फैक्टरी जो आपको पोस्ट अनुरोधों के साथ एएसपी.नेट एमवीसी 3 कार्यों में नियंत्रक कार्यों के लिए JSON अनुरोध भेजने की अनुमति देता है। प्राप्त अनुरोधों के लिए आप एक मानक अनुरोध इस्तेमाल कर सकते हैं:

var vm = { emailAddress:"[email protected]" }; 
$.ajax({ 
    url: "/myService/myAction", 
    type: "GET", 
    data: vm, 
    success: myAction_Succeeded, 
    error: myAction_Failed 
}); 

या JSON अनुरोध आपके AJAX अनुरोध में type: 'POST' को संशोधित करता है, तो आप भेजना चाहते हैं। जाहिर है इस मामले में आपको अपने नियंत्रक कार्रवाई से HttpVerbs.Get विशेषता को हटाना होगा जो वर्तमान में केवल अनुरोध प्राप्त करने के लिए बाध्य है।

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद! –

संबंधित मुद्दे