【问题标题】:ASP.NET Core Web API - AmbiguousMatchException: The request matched multiple endpointsASP.NET Core Web API - AmbiguousMatchException:请求匹配多个端点
【发布时间】:2020-11-08 20:55:05
【问题描述】:

我一直在看这个,但仍然找不到解决方案,这里是:

要返回所有玩家,我将传递类似于: http://localhost:7777/api/teams/34fe3b6f-ba23-4657-820a-6c59dd49173a/players

要返回特定球队的特定球员,我将传递类似于: http://localhost:7777/api/teams/34fe3b6f-ba23-4657-820a-6c59dd49173a/players/f7de7974-9cbb-4c2c-884e-29036d6c2d76

我不断收到以下错误: System.ArgumentException: '路由参数名称'id'在路由模板中出现多次。 '

有人可以建议如何解决这个问题吗?

[Route("api/Teams/{Id}/Players}")]
[ApiController]
public class PlayersController : ControllerBase
{

    [HttpGet]
    public IActionResult GetAllTeamPlayers(Guid id)
    {
        return Ok();
    }

    [HttpGet]
    public IActionResult GetTeamPlayer(Guid id, Guid id2)
    {
        return Ok();
    }
}

【问题讨论】:

    标签: asp.net-core asp.net-web-api


    【解决方案1】:

    你应该像这样定义路由参数:

    [Route("api/Teams/{teamId}/}")]
    [ApiController]
    public class PlayersController : ControllerBase
    {
    
        [HttpGet("players")]
        public IActionResult GetAllTeamPlayers([FromRoute] Guid teamId)
        {
            return Ok();
        }
    
        [HttpGet("players/{playerId}")]
        public IActionResult GetTeamPlayer([FromRoute] Guid teamId, [FromRoute] Guid playerId)
        {
            return Ok();
        }
    }
    

    【讨论】:

    • 传奇人物,太棒了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2020-04-04
    相关资源
    最近更新 更多