J’essaie d’apprendre ASP.Net MVC et je voulais publier un tableau d’objects JSON sur le serveur et le renvoyer au côté client. Tout va bien lorsque j’utilise Postman , mais cela ne fonctionne pas sur une page Web. Je pense que le problème vient soit du code jQuery qui publie le tableau, soit du code ASP.Net qui ne peut pas parsingr le tableau.
Voici mon code de contrôleur:
[System.Web.Mvc.HttpPost] public ActionResult GetResult(List list) { return Json(list); }
Voici ma déclaration d’object:
- Json ajax avec passage de paramètre
- Pourquoi dire à jQuery de cliquer sur mon bouton de lien pour ralentir ma page?
- ASP.NET et jQuery – appel de codebehind
- Comment définir HTMLEditorExtender HTML à partir du client
- liste déroulante à la liste déroulante
public class Table { public int Id { get; set; } public Ssortingng Question { get; set; } public int Answer { get; set; } }
Voici le code jQuery qui poste les données:
$.post("./GetResult", JSON.ssortingngify(tableData), function (data, status) { alert(status); }, "json");
et tableData est un tableau de JSON comme celui-ci:
[ { "Id": 500, "Question": "where are you from", "Answer": 2 }, { "Id": 501, "Question": "how old are you", "Answer": 1 }, { "Id": 502, "Question": "what is your first car", "Answer": 2 }, { "Id": 503, "Question": "do you have kids", "Answer": 1 } ]
En outre, je peux voir que mon code passe par le post-contrôleur mais il est vide ou nul.
Voici le lien de mon fichier csHTML.
- webforms: ajout dynamic d’une option javascript à une liste déroulante
- Chargement différé du contenu de la page à l’aide de JavaScript ou de jQuery
- jQuery (ou peut-être le navigateur) est un script chargé d’ajax chargé
- afficher la boîte d’alerte avec le champ de texte dedans
- La validation de Datepicker ne fonctionne pas avec le plugin jquery
Essayez de spécifier le type de contenu dans votre demande:
$.ajax({ url: "./GetResult", type: "POST", data: JSON.ssortingngify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })
JSON.ssortingngify
n’est pas nécessaire dans votre appel $.post
. Laissez jQuery gérer cela pour vous.
$.post("./GetResult", {list:tableData}, function (data, status) { alert(status); } , "json");
Json n’a jamais passé d’object.
using Newtonsoft.Json; [HttpPost] Public ActionResult GetResult(ssortingng list) { var obj = JsonConvert.DeserializeObject>(strStatus); return Json(list) }
ou
$.ajax({ url: "./GetResult", type: "POST", data: JSON.ssortingngify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })