1

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

/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";
}

一切都正确映射,但是如何<video_id>从 GetChapters 函数中访问 URL 中的参数?

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

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

如何在此 1 中访问控制器后的参数?

4

1 回答 1

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”到 POST 等),而方法名称的其他部分(“Chapters”)是视为动作名称。

于 2012-12-23T08:47:39.730 回答