2014-02-11 69 views
0

我運行的Web API控制器,但只有一個方法已通過。如何通過兩種方法?Web API的兩種方法路由

public List<activity2> GetAllCategories() 
{ 

public List<String> DirSearch(string sDir) 
{ 

這是我在我的webapi配置中的默認路由。

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

回答

0

你只需要改變參數sDirid,這將解決您的問題。

[HttpGet] 
public List<activity2> GetAllCategories(){//} 

[HttpGet] 
public List<String> DirSearch(string id){//} 

然後保持一樣的默認路由:

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

更新

如果你想使用Attribute Routing實現這一目標,見下圖:

安裝AttributeRouting.WebApi nuget包裝:

PM> Install-Package AttributeRouting.WebApi 

然後添加像路由屬性:

[HttpGet] 
[Route("api/YourControllerName")] 
public List<activity2> GetAllCategories(){//} 

[HttpGet] 
[Route("api/YourControllerName/{sDir}")] 
public List<String> DirSearch(string sDir){//} 

有關屬性路由的詳細信息,請參閱Attribute Routing in Web API 2

+0

我使用mvc4,呃抱歉但路線是下劃線紅? –

+0

hi @GimYong,我更新了我的答案,這是解決您的問題最簡單的方法。 – Lin