2013-11-21 7 views
9

Se I decorare questo controller Web API con la Strada attribuire posso colpire il metodoutilizzando la funzione Rotta invece di RoutePrefix a livello controller di attributo Web .NET API di routing

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

Ma se io uso RoutePrefix invece posso' t farlo funzionare a meno che allo stesso tempo che uso percorso ("")

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

è questo destinati, o sto scompigliare le cose?

Grazie

risposta

17

destro, questo è un comportamento previsto ... RoutePrefix attributo di per sé non aggiunge alcun route alla tabella di percorso dove come Route attributi fanno ...

5

Ti manca esso. .. Il prefisso del percorso, è solo questo, un prefisso. Dovresti spostare parte del modello del percorso all'attributo del percorso. Come questo.

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