Estoy tratando de pasar una cadena a una función IActionResult en un controlador asp.net core 3.1.
Ajax:
function CreateApprover() { const input = { PlantId: $('#ddlPlant').val(), UserId: $('#ddlUser').val(), CategoryId: $('#ddlCategory').val() }; let jsonData = JSON.stringify(input); console.log(jsonData); $.ajax({ contentType: "application/json", data: jsonData, traditional: true, method: "POST", url: "@Model.CreateUrl", success: function (data, textStatus, jqXHR) { dialogDiv.dialog('close'); }, error: function (xhr, err) { console.log(arguments); console.log('Request Status:'); console.log(xhr.status); console.log('Status Text:'); console.log(xhr.status); console.log(xhr.responseText); } }); }Información de red:
C#:
[HttpPost] public IActionResult CreateApprover(IFormCollection keyValues, [FromBody]ApproversCreateModel input) { return Ok(); } public class ApproversCreateModel { public int UserId { get; set; } public int PlantId { get; set; } public int CategoryId { get; set; } }La carga útil parece correcta y los puntos de interrupción se alcanzan en el método del controlador, pero el parámetro de entrada siempre es nulo y el parámetro keyValues no tiene datos. ¿Qué me estoy perdiendo?
Respondido por Bryan Dellinger,
tal vez pruebe PlantId: parseInt($('#ddlPlant').val()), etc.