我正在尝试通过WEB Api获取所有数据和单个数据。当我获得单个数据时,我必须在 URL 中添加“问号”,但我不想要它。我怎样才能避免这样做。
我想完全删除 ?C_ID= 部分; http://localhost:xxxx/api/Candidates/?C_ID=1
我想要一个像这样的 URL 来获取单个候选人 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}"
);
}
}
}
最佳答案
你已经拥有了;第二条路线会处理它。或者您可以将两条路由替换为以下默认路由 -
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)
{
...
}
}
关于asp.net-web-api - 如何为WEB API中的ID设置不带问号的API URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794474/