2010-02-17 7 views
5

पैरामीटर शब्दकोश में विधि 'System.Web.Mvc के लिए गैर-शून्य प्रकार' System.Int32 'के पैरामीटर' appId 'के लिए एक शून्य प्रविष्टि है। .CententResult CheckForInstaller (Int32) 'HLIT_TicketingMVC.Controllers.TicketController' में '। एक वैकल्पिक पैरामीटर एक संदर्भ प्रकार, एक शून्य प्रकार होना चाहिए, या एक वैकल्पिक पैरामीटर के रूप में घोषित किया जाना चाहिए।

function SubmitAjax(url, message, successFunc, errorFunc) { 
    $.ajax({ 
    type:'POST', 
    url:url, 
    data:message, 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success:successFunc, 
    error:errorFunc 
    }); 
}; 

डेटा वस्तु के रूप में बनाया गया है इस प्रकार है:

var message="{'appId':"+application.val()+"}"; 

और

var message="{'appId':'"+application.val()+"'}"; 

मैं संदेश है कि मान्य:

var message={"appId":application.val()}; 

मैं भी एक jsonified स्ट्रिंग की कोशिश की है एक पीआर के साथ आ रहा है पोस्ट करने का प्रयास करने से पहले int int ऑपरेट करें। डिबगर पर माउस सबसे हाल ही में पता चला है: {appId="6"}

नियंत्रक पर विधि हस्ताक्षर है:

public ContentResult CheckForInstaller(int appId) 

जब मैं विधि हस्ताक्षर से पैरामीटर को निकालने के लिए, यह ब्रेकप्वाइंट अंदर मारा है, इसलिए यह या तो हस्ताक्षर है किसी प्रकार की विशेषताओं की आवश्यकता है, या संदेश ठीक से बनाया नहीं गया है, मुझे विश्वास है।

+0

क्या आप कोई स्ट्रिंग में int बदल रहे हैं जब आप कोई परिणाम प्राप्त करते हैं: सार्वजनिक ContentResult CheckForInstaller (स्ट्रिंग appId)? – Pbirkoff

+0

वह एप्लिकेशन ऑब्जेक्ट क्या है? क्या आप वाकई उम्मीद के अनुसार काम करते हैं? –

+0

@ çağdaş - हाँ जब मैं परिणाम पर माउस करता हूं, तो यह उस मूल्य को दिखाता है जो मैं उम्मीद करता हूं। @ Pbirkoff - मैंने कोशिश नहीं की लेकिन समस्या मिली, नीचे दिए गए उत्तर को स्वीकार किया गया। – Maslow

उत्तर

9

इस निकालें:

contentType: 'application/json; charset=utf-8', 

MVC एक int में JSON पार्स करने के लिए नहीं जा रहा है। आप application/x-www-form-urlencoded का डिफ़ॉल्ट मान चाहते हैं।

+0

+1 भयानक यह काम करता है – Maslow

+0

ऐसे मामलों में, क्या हमें एक्शन विधि के लिए एक विशेष मार्ग परिभाषित करना होगा जिसे बुलाया जाएगा? या यह स्वचालित रूप से बाध्य है? –

+0

@ लॉर्डकॉवर: नहीं, आपको एक विशेष मार्ग की आवश्यकता नहीं है। यह किसी अन्य रूप की तरह बाध्य है। –

2

मैं इसे शायद लगता है कि आप नियंत्रक करने के लिए json भेज रहे हैं की कोशिश इस

function SubmitAjax(url, message, successFunc, errorFunc) { 
    $.ajax({ 
    type:'POST', 
    url:url, 
    data:"appId=" + application.val(),//not sure where you get the value from in your current code 
    dataType: 'json', 
    success:successFunc, 
    error:errorFunc 
    }); 
}; 
+0

आप JSON के बारे में सही हैं, लेकिन उनका 'डेटा' पहले से ही सही है। –

+0

ऐसे मामलों में, क्या हमें एक्शन विधि के लिए एक विशेष मार्ग परिभाषित करना होगा जिसे बुलाया जाएगा? या यह स्वचालित रूप से बाध्य है? –

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