2012-05-03 172 views
4

我有一個名爲QuotaController控制器和I可以通過HTTPRequests的訪問,就像這樣:的Web API定製路由

本地主機:12345 /配額/

我要的是把一個終點的地方,所以我可以訪問它想:

本地主機:12345 /配額/增量

本地主機:12345 /配額/遞減

如何才能做到這一點?

+0

我有同樣的問題 –

回答

5

你可以改變你的Web API路線定義,允許通過一個動作名稱:

routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

然後:

public class QuotaController : ApiController 
{ 
    public void Increment() 
    { 
     ... 
    } 

    public void Decrement() 
    { 
     ... 
    } 
} 
+0

我已經有一個這樣的路線,正確的現在quotacontroller看起來是這樣的: 公共類QuotaController:ApiController { 公共HttpResponseMessage GetQuota(INT ID){} [System.Web.Http.HttpPost] 公共HttpResponseMessage SetQuota(INT ID,的DocType DOC,QuotaType配額,int值){} [System.Web.Http.HttpPost] 公共HttpResponseMessage增量{} [System.Web.Http.HttpPost] 公共HttpResponseMessage遞減{ } } 我可以在一個控制器中有多個發佈請求嗎? –

+0

是的,您可以有多個POST操作。 –

+0

你的網址似乎缺少'api'前綴。它不應該是'localhost:15339/api/quota/increment'嗎?至少按照我在答案中顯示的路線定義,它應該是這樣。 –