Ich erstelle eine Website mit ASP.NET Core MVC. Wenn ich auf eine Aktion klicken ich diesen Fehler:AmbiguousActionException: Mehrere Aktionen übereinstimmten. Die folgenden Aktionen stimmten mit den Routendaten überein und erfüllten alle Einschränkungen
AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
Web.Controllers.ChangeEventsController.Create (Web)
Web.Controllers.ProductsController.CreateChangeEvent (Web)
Dies ist, wie ich für meine Products im index.cshtmlm meine Aktion definiert:
<a asp-controller="ChangeEvents" asp-action="Create" asp-route-id="@item.Id">Create Change Event</a>
Hier ist mein Routing:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Hier ist, wie ich die Aktionen definiert:
// ChangeEventsController
[HttpGet("{id}")]
public IActionResult Create(Guid id)
// ProductsController
[HttpGet("{id}")]
public IActionResult CreateChangeEvent(Guid id)
Was habe ich falsch gemacht?
aktualisieren
Dank @MegaTron für Ihre Antwort, aber ich würde gerne wissen, warum ich nicht die gleiche Aktion Pfad für verschiedene Controller haben. Ich habe das Gefühl, dass die von Ihnen vorgeschlagene Lösung nicht gut skaliert werden kann, wenn ich viele Controller habe, die jeweils Entitäten erstellen.
Sie brauchen nicht IShouldNotNeedThisIThink Route Erklärung. – Klinger
Brauche ich diese Route? – Zeus82
Im einfachsten Fall brauchen Sie nur den Standard. – Klinger