Я создаю веб-сайт с использованием ASP.NET Core MVC. Когда я нажимаю на действие, я получаю эту ошибку:
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)
Вот как я определил свое действие в index.cshtmlm для моего ProductsController:
<a asp-controller="ChangeEvents" asp-action="Create" asp-route-id="@item.Id">Create Change Event</a>
Вот моя маршрутизация:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Вот как я определил действия:
// ChangeEventsController
[HttpGet("{id}")]
public IActionResult Create(Guid id)
// ProductsController
[HttpGet("{id}")]
public IActionResult CreateChangeEvent(Guid id)
Что я сделал неправильно?
Обновление
Спасибо @MegaTron за ваш ответ, однако я хотел бы знать, почему у меня не может быть такого же пути действий для разных контроллеров. Я чувствую, что решение, которое вы предложили, не будет хорошо масштабироваться, если у меня будет много контроллеров, каждый из которых создаст объекты.