我正在使用ExtCore.Mvc库,当我在2个不同的扩展名中有2个具有相同名称的控制器时出现问题。 这是我的代码:
在ExtensionA中:
public class UseEndpointsAction : IUseEndpointsAction
{
public int Priority => 1000;
public void Execute(IEndpointRouteBuilder endpointRouteBuilder, IServiceProvider serviceProvider)
{
endpointRouteBuilder.MapControllerRoute(
name: "ExtensionA",
pattern: "ExtensionA",
defaults: new { controller = "Default", action = "Index" });
}
}
在ExtensionB中:
public class UseEndpointsAction : IUseEndpointsAction
{
public int Priority => 1000;
public void Execute(IEndpointRouteBuilder endpointRouteBuilder, IServiceProvider serviceProvider)
{
endpointRouteBuilder.MapControllerRoute(
name: "ExtensionB",
pattern: "ExtensionB",
defaults: new { controller = "Default", action = "Index" });
}
}
有两个控制器,分别是“ ExtensionA.Controllers.DefaultController”和“ ExtensionB.Controllers.DefaultController”。
当客户端请求以下URL:“ http:// {domain} / ExtensionA”时,会出现以下错误:
在处理请求时发生未处理的异常。 AmbiguousMatchException:请求匹配了多个端点。火柴: ExtensionA.Controllers.DefaultController.Index(ExtensionA) ExtensionB.Controllers.DefaultController.Index(ExtensionB)
我想使用名称空间来解决它,这意味着要解析到特定名称空间的每条路由。 我在网上搜索,但阅读了所有MSDN文档,却一无所获。任何帮助将不胜感激。
谢谢