2012-12-23 50 views
0

我正在嘗試使用.NET Web API創建REST服務。我試圖將網址映射是如何訪問Web API中的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"; 
} 

一切映射正確,但是如何從GetChapters函數內訪問URL中的<video_id>參數?

舉一個具體的例子,網址如下:

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

如何獲得訪問控制器後的參數,在這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等),而方法名稱的其他部分('章節')被視爲行動名稱。

+0

非常感謝! – majid