Estoy tratando de aprender ASP.Net MVC y quería publicar un conjunto de objetos JSON en el servidor y enviarlo de nuevo al lado del cliente. Todo está bien cuando uso Postman , pero no funciona en la página web real. Creo que el problema es con el código jQuery que publica la matriz o el código ASP.Net que no puede analizar la matriz.
Aquí está mi código de controlador:
[System.Web.Mvc.HttpPost] public ActionResult GetResult(List list) { return Json(list); }
Aquí está mi statement de objeto:
public class Table { public int Id { get; set; } public String Question { get; set; } public int Answer { get; set; } }
Aquí está el código jQuery que publica los datos:
$.post("./GetResult", JSON.stringify(tableData), function (data, status) { alert(status); }, "json");
y tableData es un Array de JSON como este:
[ { "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 } ]
Además, puedo ver que mi código pasa por el controlador de correos pero está vacío o nulo. 
Aquí está el enlace de mi archivo csHTML.
Intente especificar el tipo de contenido en su solicitud:
$.ajax({ url: "./GetResult", type: "POST", data: JSON.stringify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })
No hay necesidad de JSON.stringify
en su llamada $.post
. Deja que jQuery se encargue de eso por ti.
$.post("./GetResult", {list:tableData}, function (data, status) { alert(status); } , "json");
Json nunca pasó objeto.
using Newtonsoft.Json; [HttpPost] Public ActionResult GetResult(string list) { var obj = JsonConvert.DeserializeObject>(strStatus); return Json(list) }
o
$.ajax({ url: "./GetResult", type: "POST", data: JSON.stringify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })