我试图通过WEB Api获取所有数据和单个数据。当我获得单个数据时,我必须放置"问号"但是在网址中我并不想要它。我怎么能避免这样做。
我想完全删除?C_ID = part; http://localhost:xxxx/api/Candidates/?C_ID=1
我希望有一个这样的网址来获得单个候选人 http://localhost:xxxx/api/Candidates/1
namespace JobPortalX2_Server
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
//CORS
config.EnableCors();
config.Routes.MapHttpRoute(
name: "GetCandidatesRoute",
routeTemplate: "api/{controller}"
);
config.Routes.MapHttpRoute(
name: "GetCandidateRoute",
routeTemplate: "api/{controller}/{id}"
);
}
}
}
答案 0 :(得分:2)
你已经拥有它;第二条路线将照顾它。或者您可以使用以下默认路线替换两个路线 -
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional});
如果您使用Web API 2并希望使用 C_ID 作为参数名称,则可以使用 RouteAttribute 。
[RoutePrefix("api/candidates")]
public class CandidatesController : ApiController
{
[HttpGet]
[Route("{c_id:int}")]
public async Task<IHttpActionResult> Get(int c_id)
{
...
}
}