Este código se ejecuta correctamente, pero el problema es que no puedo comunicarme con el controlador para que realice la eliminación JS: se ejecuta sin errores y no se observan errores en Developer Tool. Pero el controlador en sí no se ejecuta.
JS
jQueryAjaxDelete = form => { if (confirm('Are you sure to delete this record ?')) { try { $.ajax({ type: 'POST', url: form.action, data: new FormData(form), contentType: false, processData: false, success: function (res) { /*$('#view-all').html(res);*/ setTimeout(function () { location.reload(); }, 1000); }, error: function (err) { console.log(err) } }) } catch (ex) { console.log(ex) } } //prevent default form submit event return false;}
Controlador
[HttpPost] public async Task<ActionResult> CategoryDelete(int? id) { if (id == null) { return NotFound(); } var category = await _context.Categories.FindAsync(id); _context.Categories.Remove(category); await _context.SaveChangesAsync(); return Json(_context.Categories.ToList()); }Vista
<td><form asp-action="CategoryDelete" asp-route-id="@c.Id" onsubmit="return jQueryAjaxDelete(this)" class="d-inline"> <input type="submit" value="Delete" class="btn btn-danger" /> </form></td>Herramienta para desarrolladores
[SOLUCIONADO] Necesita agregar enrutamiento a través de atributos [HttpPost], [HttpGet]
[HttpGet("Admin/CategryDelete/{id}")]//here public ActionResult CategoryDelete() { return View(); } [HttpPost("Admin/CategryDelete/{id}")]//here public async Task<ActionResult> CategoryDelete(int? id) { if (id == null) { return NotFound(); } var category = await _context.Categories.FindAsync(id); _context.Categories.Remove(category); _context.SaveChanges(); return Json(_context.Categories.ToList()); }