Comment poster tableau d'objet json à la méthode du contrôleur
Je suis à l'aide de trucs ci-dessous pour la liste des messages de l'objet pour le contrôleur ajax méthode post.
jQuery trucs:
var values = [];
values.push(rowData1);
values.push(rowData2);
values.push(rowData3);
var data = JSON.stringify({
installationControls: values
});
$.ajax({
url: '/ControllerName/fin',
type: "POST",
contentType: "application/json",
data: {
data: data
},
success: function () {
console.log('success!!');
}
});
Veuillez me suggérer ce qui est faux..
méthode de contrôleur:
[HttpPost]
public JsonResult fin(object s) {
//.................
}
posté données sont comme suit:
installationControls":[{"syID":"1789","FullName":"Bejin Mara","Min":"5","MSG":""},{"syStudentID":"46","FullName":"Calderon Laura","MinAbsent":"7","MSG":""},{"syID":"17","FullName":"mic Mayra","Min":"5","MSG":""}]
essayé en créant un même objet et transmis au contrôleur argument mais pas fonctionné.
- Alors, quel est votre problème exactement? Toute erreur msg sur firebug? donner votre code de contrôleur
- Impossible d'appeler la méthode du contrôleur -
fin(object s)
. S'il vous plaît dites-moi, j'ai changer argumnet au lieu deobject
type à un autre type de détenir tableau json ?
Vous devez vous connecter pour publier un commentaire.
Votre ajax paramètres semblent corrects. Cependant, depuis le point de terminaison attend et objet nommé "s", j'ai changé le
data:
bits pour refléter ceci:T-il m'aider?
Edit: Le contrôleur pourrait accepter une discbased comme ceci:
Ajax:
Vous pouvez soit utiliser un ViewModel structure de données associée à la vue de l'exécution pour être en mesure de résoudre l'objet de la demande.
Il est une autre façon de lier un objet/complexe de type autre que la valeur par défaut ViewModel objet que vous pouvez suivre ici Envoi complexe objets JSON à Asp.net MVC à l'aide de jQuery Ajax.
Pas sûr si cela va résoudre le problème, mais dans votre ajax paramètres essayez d'ajouter traditionnel:vrai
- déposer le JSON.stringify.
Lors du passage de tableaux aux contrôleurs que j'ai trouvé j'avais besoin d'utiliser la valeur true
Changer votre JavaScript doit être comme ceci:
Et dans votre contrôleur, changer le contrôleur:
[HttpPost]
public JsonResult fin(Liste installationControls) {
//.................
}
Où
InstallationControl
est une classe qui possède les mêmes propriétés que la publication des valeurs, dans ce cas, il doit avoir les propriétés suivantes: