Estoy buscando para cambiar mi registro y el valor newInsert está en la búsqueda verdadera pero en el controlador es falso.
Buscar:
fetch('api/Test/UpdateOrInsertType', { headers: { 'Content-Type': 'application/json' }, method: 'POST', body: JSON.stringify({ 'newInsert': newInsert //Console.log -> true })Controlador:
[HttpPost("UpdateOrInsertType")] public IActionResult UpdateOrInsertType([FromBody] bool newInsert) // Debugger newInsert -> false { try { return Ok(Test.UpdateOrInsertType(newInsert)); } catch (Exception ex) { return Conflict(ex); } }Json no funciona correctamente con tipos primitivos. Si no desea usar json.stringify, debe crear un ViewModel
public class ViewModel { public bool NewInsert {get; set;} }y acción
[HttpPost("UpdateOrInsertType")] public IActionResult UpdateOrInsertType([FromBody] ViewModel model) { bool newInsert=model.NewInserto puede eliminar { 'Content-Type': 'application/json' }
fetch('api/Test/UpdateOrInsertType', { method: 'POST', body: { newInsert: newInsert } })y eliminar [FromBody]
[HttpPost("UpdateOrInsertType")] public IActionResult UpdateOrInsertType( bool newInsert)En este caso, no debe usar JSON.stringify .
Simplemente pase el objeto javascript sin procesar para fetch body :
fetch('api/Test/UpdateOrInsertType', { method: 'POST', body: { newInsert: newInsert } }); Ahora, en el lado del servidor, se reconocerá como una propiedad bool .