Estoy tratando de obtener múltiples entradas con Ajax. Sin embargo, tanto "id" como "qty" devuelven un valor nulo (por cierto, les di valores predeterminados ahora). ¿Podrías ayudarme? Por favor revise mi código a continuación.
<script type="text/javascript"> $(document).ready(function () { $("#submit").on("click", function () { var elem = {}; elem.qty = "10"; elem.id = 1; $.ajax({ url: '/Home/Form1/', type: 'POST', dataType: 'json', data: JSON.stringify(elem), success: function (data) { alert(data), console.log(data), $("#output").html(data[0]); } }); }); }); public class Data { public string qty { get; set; } public int? id { get; set; } } public ActionResult Form1(Data elem) { List<Data> Elements = new List<Data> { new Data {qty=elem.qty, id=elem.id}, }; return Json(Elements); }"Lets focus on below code first"
var elem = {}; elem.qty = "10"; elem.id = 1 Note: Como ya puede ver en Json , no es necesario que vuelva a analizar json. Por lo tanto, no es necesario usar JSON.stringify en este caso. Así que podrías probar de la siguiente manera:
Javascript Code:
<script> $(document).ready(function () { $("#btnSubmit").on("click", function () { var elem = {}; elem.qty = "10"; elem.id = 1; console.log(elem); $.ajax({ url: 'https://localhost:44361/userLog/FormPost', type: 'POST', dataType: 'json', data: elem, success: function (data) { alert(data), console.log(data), $("#output").html(data[0]); } }); }); }); </script> C# Controller Code:
[HttpPost] public async Task<IActionResult> FormPost(Data elem) { List<Data> Elements = new List<Data> { new Data {qty=elem.qty, id=elem.id}, }; return Json(Elements); } Output:
Espero que haya resuelto su problema como se esperaba.