C # MVC 4: Passer un tableau JavaScript dans View to Controller
MVC 4, comment voulez-vous passer un tableau JavaScript dans la Vue à une fonction dans le Contrôleur avec l'AJAX?
Cela ne semble pas le travail:
$.ajax(
{
type: "POST",
url: "../Home/SaveTable",
data: { function_param: countryArray }
});
Problème est, countryArray est un réseau mondial dans le JavaScript de Vue et j'ai vérifier qu'il y a des éléments qui le composent avant d'être transmis. Toutefois, lorsque le saveTable fonction reçoit le tableau, la fonction affirme qu'il a reçu un null string[] tableau.
Je sais seulement que le passage de tableaux à partir de la Contrôleur à la Vuevous sérialiser des types de données complexes avec return Json(data, JsonRequestBehavior.AllowGet);
et donc dé-sérialiser en la plaçant dans un "var" à la variable.
Donc je dois faire pour cela, mais comment?
Edit 1:
Ici est la version abrégée de l'SaveTable fonction:
public string SaveTable(string[] function_param)
{
if (function_param != null && function_param > 0)
{
//some code
return "Success";
}
//The following code will run if it's not successful.
return "There must be at least one country in the Region.";
//Yeah it's always returning this b/c function_param is null;
}
source d'informationauteur RedAces
Vous devez vous connecter pour publier un commentaire.
Vous devez définir
traditional: true
lors de la sérialisation des tableaux.Trouvé cette bonne explication sur ce
traditional: true
n': https://stackoverflow.com/a/5497151/2419531EDIT:
Si vous ne souhaitez pas utiliser
traditional: true
vous pouvez transmettre les données en tant que chaîne à l'aide deJSON.stringify
et en spécifiant lecontentType
:Que vous devez utiliser sur votre contrôleur:
Devrait faire le travail, c'est pour les futurs utilisateurs.
votre Ajax :
dans votre contrôleur:
alors vous serez en mesure de faire un foreach dans votre contrôleur.