【发布时间】:2020-11-24 08:01:41
【问题描述】:
我在标准 .NET Core WebApi 项目中有这个控制器代码:
[ApiController]
[Route("[controller]")]
public class MessageController : ControllerBase
{
[HttpGet]
public string GetByTransactionId([FromRoute(Name = "transactionId")] string transactionId)
{
return "transactionId";
}
[HttpGet]
public string GetByNumber([FromRoute(Name = "number")] string number)
{
return "number";
}
}
我想像这样访问 api:
- https://localhost:44316/Message?transactionId=abc
- https://localhost:44316/Message?number=foobar
当访问端点 URL 时,例如:https://localhost:44316/Message?transactionId=abc,我收到如下错误:
AmbiguousMatchException: The request matched multiple endpoints. Matches:
Server.Controllers.MessageController.GetByTransactionId (Server)
Server.Controllers.MessageController.GetByNumber (Server)
这可以通过使用正确的[HttpGet] 或[Route] 属性来解决吗?
【问题讨论】:
标签: asp.net-web-api routes http-get