J’essaie de construire un tableau de chaînes en JavaScript et d’obtenir les résultats dans une liste de chaînes dans la méthode action. Voici à quoi ressemble mon JavaScript. J’utilise jQuery 1.4.2. Le problème est que ma liste dans la méthode d’action montre toujours NULL. Un tableau de chaînes JavaScript ne correspond-il pas correctement à une liste de chaînes en C #?
var test = ['test1', 'test2']; var parms = { var1: 'some ssortingng', var2: test }; $.ajax({ type: "POST", url: "/Test/JSONTestAction", async: false, data: parms, dataType: "json", success: function(data) { // success } });
Ensuite, mon JsonResult ressemble à ceci:
public JsonResult JSONTestAction(ssortingng var1, List var2) { // var2 is always NULL -- not good return Json(new { test = "test" }); }
J’ai rencontré le même problème après la mise à jour vers jQuery 1.4.2. Vous pouvez trouver la solution ici (dans la section Ajax).
L’ajout de traditional: true dans les options ajax devrait fonctionner.
$.ajax({ type: "POST", traditional: true, url: "/Test/JSONTestAction", async: false, data: parms, dataType: "json", success: function(data) { // success } });
Cette modification visait à améliorer le comportement natif des utilisateurs de PHP / Rails, vous pouvez en savoir plus sur les modifications apscopes aux parameters ici .
Vous pouvez l’activer à la demande comme ceci:
$.ajax({ //Stuff... traditional:true });
Ou globalement comme ça (seulement besoin de courir une fois avant de lancer une requête):
jQuery.ajaxSettings.traditional = true;