我的 API 中只有一个 Get 有效

Only one Get works in my API

我有两个收获:

    [HttpGet]
    [Route("api/users")]
    public HttpResponseMessage GetSpecificUser(int id)
    {
        var foundUser = Users.FirstOrDefault(user => user.ID == id);

        return Json(foundUser).ExecuteAsync(CancellationToken.None).Result;
    }

    [HttpGet]
    [Route("api/users")]
    public HttpResponseMessage GetAllUsers()
    {
        return Json(Users).ExecuteAsync(CancellationToken.None).Result;
    }

似乎只有 GetAllUsers 有效。 (通过 http://localhost:61800/api/users 访问)

正在尝试通过 http://localhost:61800/api/users/1

访问 GetSpecificUser

我在两种方法中都设置了断点,但只有 GetAllUsers 被命中。

我正在使用默认的 RouteConfig

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

为什么特定的 Get 不起作用?

确保在路由定义中包含 {id} 标记:

[Route("api/users/{id}")]
public HttpResponseMessage GetSpecificUser(int id)