2010-02-08 7 views
3

Quelqu'un a-t-il un aperçu de ce qui se passe ici? Voici mon clientside jquery 1.4.1 Code:Passer des paramètres de tableau de jquery à ASP.NET MVC

$.ajax({ 
    type: "POST", 
    url: "PrintBOL/Print", 
    data: [1, 2, 3], 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    error: function(xmlHttpRequest, status, errorThrown) { 
     console.debug(xmlHttpRequest) 
    }, 
    success: function(serverReply) { 
     console.debug("OK") 
     console.debug(serverReply) 
    } 
}) 

Voici ma signature de méthode côté serveur:

public ActionResult Print(int[] ids) 

Le paramètre ids vient toujours apparaître comme nulle.

Des idées?

D'ailleurs je fais que j'invoque ce en haut de la page:

jQuery.ajaxSettings.traditional = true 

MISE À JOUR: Voir les commentaires dans la réponse de Steven ci-dessous pour la résolution.

Répondre

4

les opérations suivantes:

changement:

data: [1, 2, 3], 

à

data: {"ids": [1, 2, 3]}, 
+0

Ne fonctionne pas. Impair. –

+0

l'action d'impression possède-t-elle l'attribut POST [AcceptVerbs (HttpVerbs.Post)]? –

+0

Juste essayé de le mettre là, toujours pas bon. –

2

que vous devez faire:

data: { "ids[0]": 1, "ids[1]": 2, "ids[2]": 3}, 
+0

hmm, var ids = ne [1,2 , 3]; JSON.stringify (ids) fonctionne? Comment puis-je obtenir cette sérialisation automatiquement? –

+0

Odd Je viens d'essayer ceci - data: {"ids [0]": 1, "ids [1]": 2}, et il est toujours passé comme nul –

+0

Essayez de changer le param à 'IEnumerable ids' - c'est comment je le fais. –

Questions connexes