2013-04-07 5 views
1

Comment envoyer un tableau au contrôleur? Je essayé donc:Envoyer un tableau au contrôleur

window.location.href = "/SomeController/SomeMethod?fields=" + SomeArray; 

et ainsi:

window.location.href = "/SomeController/SomeMethod?fields[][]=" + SomeArray; 

Dans contrôleur je recois donc:

public ActionResult SomeMethod(int[][] fields) // here fields = null; 
{ 
// Some code 
} 

Répondre

0

Utilisez le jQuery ajax method.

Convertissez l'objet js SomeArray en Json et renvoyez-le au contrôleur dans la propriété data de la méthode ajax. Ci-dessous, j'utilise JSON.stringify pour les navigateurs modernes, mais vous pouvez inclure le script json2 pour prendre en charge les anciens navigateurs.

   $.ajax({ 
        url: '/SomeController/SomeMethod', 
        type: 'POST', 
        data: JSON.stringify(SomeArray), 
        dataType: 'json', 
        contentType: 'application/json; charset=utf-8', 
        success: function (result) { 
         alert("Success"); 
        }, 
        error: function (xhr) { 
         alert(xhr.statusText + " Internal server error") 
        } 
       }) 
+0

Erreur: erreur de service interne – user2204438

+0

débogage du serveur pour savoir ce que l'erreur est. L'action de votre contrôleur est-elle appelée? –

0

Si vous utilisez jQuery, essayez jQuery.param

var data ={ 

    fields :[ 
     [ 
      'car', 
      'bike' 
     ] 
    ] 
}; 

window.location.href = 'SomeController/SomeMethod?' 
         + decodeURIComponent($.param(data)); 
+0

champs a 100 paramètres - ce n'est pas pratique. – user2204438

+0

@ user2204438 pourriez-vous montrer un échantillon de 'SomeArray' contient? donc nous pouvons donner une réponse plus spécifique! – rab

+0

SomeArray [10] [10] a des variables int {0 ou 1 ou 2 ou 3} c'est tout – user2204438

Questions connexes