如何在Web API中访问URL参数?

时间:2012-12-23 08:42:47

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

我正在尝试使用.NET Web API创建REST服务。我要映射的网址是

/api/<controller>/<videoId>/chapters

我的路线设置如下:

RouteTable.Routes.MapHttpRoute(name: "Route1",
  routeTemplate: "api/video/{id}/{action}",
  defaults: new { controller = "Video", action = "Chapters"});

在控制器中映射以下函数:

[HttpGet]
[ActionName("Chapters")]
public string GetChapters() {
  return "get chapters";
}

所有内容都正确映射,但如何从GetChapters函数中访问URL中的<video_id>参数?

作为具体示例,URL如下所示:

http://localhost/api/video/1/chapters

如何在控制器之后访问参数?1?

1 个答案:

答案 0 :(得分:1)

只需将id参数添加到您的Web服务方法中 - ASP.NET Web API会自动将其隐藏到查询字符串参数或路由中定义的{id}参数:

public string GetChapters(int id) {
    return "get chapters by video id";
}

此外,您可以省略[HttpGet][ActionName]属性,因为在Web API中,名称从“Get”开始的操作方法将映射到GET请求(“发布”到POST等),和方法名称的其他部分('章节')被视为动作名称。