Routen mit unterschiedlichen Controllern, aber demselben Aktionsnamen erzeugen keine gewünschten URLs

Routen mit unterschiedlichen Controllern, aber demselben Aktionsnamen erzeugen keine gewünschten URLs

Ihre beiden Routen sind gleich benannt, dies kann in ASP.NET Core MVC nicht funktionieren.

Ich spreche nicht von der Methodenbenennung, sondern von der Routenbenennung. Sie haben Ihre beiden Routen mit der gleichen Kennung Name = "delete" bezeichnet innerhalb der HttpPost Attribut. Routennamen in MVC identifizieren eine Routenvorlage eindeutig.

Soweit ich sehen kann, müssen Sie Ihre Routen nicht wirklich identifizieren, sondern nur verschiedene URIs unterscheiden. Aus diesem Grund können Sie Name frei entfernen Eigentum von HttpPost Attribut auf Ihre Aktionsmethoden. Dies sollte ausreichen, damit der ASP.NET Core-Router Ihren Aktionsmethoden entspricht.

Wenn Sie stattdessen nur mit Attribut-Routing zurücksetzen möchten, ändern Sie Ihren Controller besser wie folgt:

// other code omitted for clarity
[Route("aim/v1/contacts/")]
public class aimContactsController : Controller
{
    [HttpPost("delete/{id}")]
    public IActionResult delete(string id)
    {
        // omitted ...
    }
}