2010-10-15 15 views
12

public ActionResult DoSomething(string[] arr, bool someBool, int someInt) { }jQuery ajax/लोड

jQuery से उपरोक्त विधि कॉल करने के लिए कोशिश कर रहा है के साथ सरणी परम जमा करें:

var test = []; 
test.push('dog'); 
test.push('cat'); 

$container.load('MyController/DoSomething', 
       { 'arr[]': test, 'someBool': true, 'someInt': 1 }, 
       function(response, status, xhr) { 
        // ... 
       }); 

सरणी परमाटर रिक्त है, अन्य पैरामीटर ठीक कर रहे हैं। मैं क्या गलत कर रहा हूं?

Chrome डेवलपर टूल से पता चलता प्रपत्र डेटा वहाँ चल रहा क्या

arr%5B%5D%5B%5D:dog 
arr%5B%5D%5B%5D:cat 
someBool:true 
someInt:1 

यकीन नहीं के रूप में प्रस्तुत किया जा रहा है लेकिन मुझे

उत्तर

27

आप jQuery 1.4 उपयोग कर रहे हैं आप traditional पैरामीटर सेट करने के लिए आवश्यकता हो सकती है एएसपी में डिफ़ॉल्ट मॉडल बाइंडर प्रारूप के साथ संगत होने के लिए true पर। नेट MVC:

var data = { arr: test, someBool: true, someInt: 1 }; 
$container.load('MyController/DoSomething', $.param(data, true), 
    function(response, status, xhr) { 
    // ... 
}); 
+0

हाँ यह है। मैं वास्तव में पहले इस समस्या में आया हूं लेकिन भूल गया था जब तक कि इस जवाब ने मेरी याददाश्त को जॉग नहीं किया। – fearofawhackplanet

+1

'AJAX' के बजाय 'लोड' का उपयोग कर उदाहरण के लिए धन्यवाद। –

+0

जावा स्ट्रूट 2 के साथ एक ही समस्या होती है और यह फिक्स स्ट्रूट 2 –

1

को सही नहीं लगता है बस []

{ 'arr': test, 'someBool': true, 'someInt': 1 }, 

प्रकाशित किया गया था मूल्यों को दूर (फायरबग के साथ जांच)।

arr[]  dog 
arr[]  cat 
someBool true 
someInt  1 
+0

कोष्ठक को हटाने यह काम नहीं करता है , मैंने पहले ही कोशिश की है। हालांकि ध्यान दें कि jQuery प्रलेखन ब्रैकेट के साथ उदाहरण देता है, इसलिए मुझे लगता है कि यह सही तरीका है: '$ (" # objectID ") लोड (" test.php ", {'विकल्प []': [" जॉन "," सुसान "]});' – fearofawhackplanet

0

यहां तक ​​कि मैं त्रुटि का सामना करना पड़ रहा था, aspx पृष्ठ पर HTML पृष्ठ से सरणी पारित करने में:

var test = []; 
test.push('dog'); 
test.push('cat'); 

$.ajax({ 
    url: 'MyController/DoSomething', 
    type: 'GET', 
    traditional: true, 
    data: { arr: test, someBool: true, someInt: 1 }, 
    success: function(result) { 
     $container.html(result); 
    } 
}); 

या यदि आप .load() विधि पसंद करते हैं।

मेरी आवश्यकता थी एचटीएमएल पेज के डीआईवी टैग में एएसपीएक्स पेज लोड करना था। पेज लोड पर मुझे इन जेएस सरणी मानों को एएसपीएक्स पेज लोड में पास करने की आवश्यकता है।

मैंने नीचे विधि का उपयोग किया।

$('#<divTagID>').load("Targetpage.aspx",{"Arr":JSArrValues});

aspx पृष्ठ लोड घटना में मैं के रूप में इस मान का उपयोग कर सकते हैं:

string results = Response["Arr[]"];

JQuery API दस्तावेज़ enter link description here के लिए धन्यवाद और stackoverflow

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

  • कोई संबंधित समस्या नहीं^_^