Entrambi i percorsi hanno lo stesso nome, questo non può funzionare in ASP.NET Core MVC.
Non sto parlando della denominazione dei metodi, ma della denominazione delle rotte. Hai chiamato entrambe le tue rotte con lo stesso identificatore Name = "delete"
all'interno del HttpPost
attributo. I nomi dei percorsi in MVC identificano in modo univoco un modello di percorso.
Da quello che posso vedere non hai davvero bisogno di identificare i tuoi percorsi, ma solo di distinguere URI diversi. Per questo motivo puoi rimuovere liberamente il Name
proprietà di HttpPost
attributo sui metodi di azione. Questo dovrebbe essere sufficiente affinché il router ASP.NET Core corrisponda ai metodi di azione.
Se, invece, cosa ripristinare utilizzando solo l'attributo routing è meglio cambiare il controller come segue:
// other code omitted for clarity
[Route("aim/v1/contacts/")]
public class aimContactsController : Controller
{
[HttpPost("delete/{id}")]
public IActionResult delete(string id)
{
// omitted ...
}
}