AmbiguousMatchException 异常在 ASP.NET Core 3.1 MVC 中通常发生在路由配置或控制器方法重载时。该异常表示存在多个匹配的路由或控制器方法,导致框架无法确定要执行的操作。
以下是可能导致此异常的一些常见问题和解决方法的示例代码:
路由配置问题:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
控制器方法重载问题:
[HttpGet]
public IActionResult MyMethod() { ... }
[HttpGet]
[ActionName("MyMethodWithParam")]
public IActionResult MyMethod(string id) { ... }
路由参数冲突问题:
[HttpGet("{id}")]
public IActionResult MyMethod([FromRoute] int id) { ... }
[HttpGet("search")]
public IActionResult MyMethod([FromQuery] string id) { ... }
缺少路由约束问题:
[HttpGet("{id:int}")]
public IActionResult MyMethod(int id) { ... }
请注意,这只是一些常见问题和解决方法的示例。实际情况可能因您的代码而有所不同。如果仍然遇到问题,建议检查完整的路由配置和控制器代码,以确定问题的准确来源。
上一篇:Asp.net Core 3.1 MVC Ajax调用方法
下一篇:ASP.NET Core 3.1 MVC 基于角色的授权访问被拒绝 - 与自定义的 UserClaimsPrincipalFactory 冲突