我的 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)
我有两个收获:
[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)