我正在尝试使用.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?
答案 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等),和方法名称的其他部分('章节')被视为动作名称。