Percorsi con controller diversi ma lo stesso nome di azione non riesce a produrre gli URL desiderati

Percorsi con controller diversi ma lo stesso nome di azione non riesce a produrre gli URL desiderati

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 ...
    }
}