【发布时间】:2019-10-17 06:35:36
【问题描述】:
我有 2 个控制器。两者都处理 Bar(Foo 的孩子)。
其中一个是用于返回视图的 MVC。
[Route("Foo/Bar")]
public class FooBarController : ControllerBase
{
public IActionResult Index()
{
// ...
}
public IActionResult SomeAction()
{
// ...
}
}
其中一个用于 API,它存在于“api”的文件夹下。
[Route("api/Foo/Bar")]
[ApiController]
public class FooBarAPIController : ControllerBase
{
//
}
无需在 FooBarController 类中添加以下行,我就可以访问 API 控制器(例如:/api/foo/bar/{id})和 MVC 控制器(例如:/FooBar/SomeAction)
[Route("Foo/Bar")]
但是当我这样做时,路由会变得混乱,并且尝试访问 /Foo/Bar/SomeAction 时出现以下错误
AmbiguousMatchException:请求匹配多个端点。匹配:
Controllers.MVC.FooBarController.Index
Controllers.MVC.FooBarController.SomeAction
【问题讨论】:
标签: asp.net-mvc asp.net-web-api asp.net-core asp.net-mvc-routing