2013-11-21 45 views
9

如果我裝飾與路線此Web API控制器屬性我打的方法使用路由,而不是RoutePrefix在.NET網頁API屬性路由控制器級別

[Route("api/v{version}/bank-accounts")] 
public class BankAccountsController : ApiController 
{ 
    [HttpGet] 
    public HttpResponseMessage GetBankAccounts() 
    { 
     //... 
    } 
} 

但是,如果使用RoutePrefix相反,我可以」 t使它的工作,除非在同一時間我使用路由(「」)

[RoutePrefix("api/v{version}/bank-accounts")] 
public class BankAccountsController : ApiController 
{ 
    [HttpGet] 
    [Route("")] 
    public HttpResponseMessage GetBankAccounts() 
    { 
     //... 
    } 
} 

這是打算,還是我搞亂的東西?

感謝

回答

17

沒錯,這是一個預期的行爲... RoutePrefix屬性本身並不能任何路由添加到路由表,其中爲Route屬性做...

5

你缺少它。 ..路由前綴,就是那個,一個前綴。您應該將部分路徑模板移至路由屬性。喜歡這個。

[RoutePrefix("api/v{version}")] 
public class BankAccountsController : ApiController 
{ 
    [HttpGet] 
    [Route("bank-accounts")] 
    public HttpResponseMessage GetBankAccounts(string version) 
    { 
     //... 
    } 
}