ASP.NET Core MVC を使用して Web サイトを作成しています。アクションをクリックすると、次のエラーが表示されます。
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)
これは、ProductsController の index.cshtmlm でアクションを定義する方法です。
<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 に返信していただきありがとうございます。ただし、異なるコントローラーに対して同じアクション パスを使用できない理由を知りたいです。それぞれがエンティティを作成するコントローラーが多数ある場合、提案されたソリューションはうまくスケーリングされないように感じます。