Hacer una solicitud desde la API de búsqueda hasta el punto final y los accesorios no se vinculan.
El id y el nombre de archivo son 0 y nulo respectivamente en el punto final.
Mi búsqueda:
fetch(`https://localhost:44343/items/edit`, { method: 'POST', mode: 'cors', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ id:123, fileName:"asd" }) }) .then(response => console.log(response)) .catch(error => console.error('Unable to update item.', error));Mi punto final:
[HttpPost] public async Task<IActionResult> Edit([FromBody]int id, string fileName) { return Ok(id); }La carga útil de la solicitud muestra que los valores se están enviando:
Intenté usar y no usar [FromBody] agregando explícitamente la ruta a la acción, cambiando a PUT en lugar de POST (¿por qué diablos el valor predeterminado para la acción de actualización es POST?)
¿Algo más que pueda probar?
Cree una clase que represente la estructura json:
public class Request { public int id {get; set;} string fileName {get; set;} }Y acéptalo en la acción:
public async Task<IActionResult> Edit(Request r) { // use r }Como se indicó en el comentario anterior, cree un modelo de objeto para representar el json
public class Request { public int Id {get;set;} public string FileName {get;set;} }En el método de acción de su controlador
[HttpPost] [Route("items/edit")] public IActionResult Edit([FromBody] Request req) { return Ok(); }