如果我使用Route属性装饰这个web api控制器,我可以点击方法
[Route("api/v{version}/bank-accounts")]
public class BankAccountsController : ApiController
{
[HttpGet]
public HttpResponseMessage GetBankAccounts()
{
//...
}
}
但如果我使用RoutePrefix而不能让它工作,除非我同时使用Route(“”)
[RoutePrefix("api/v{version}/bank-accounts")]
public class BankAccountsController : ApiController
{
[HttpGet]
[Route("")]
public HttpResponseMessage GetBankAccounts()
{
//...
}
}
这是打算,还是我弄乱了?
由于
答案 0 :(得分:19)
是的,这是一个预期的行为...... RoutePrefix
属性本身不会添加任何路由到路由表,而Route
属性就是这样做...
答案 1 :(得分:6)
你错过了......路由前缀就是前缀。您应该将路径模板的一部分移动到路由属性。像这样。
[RoutePrefix("api/v{version}")]
public class BankAccountsController : ApiController
{
[HttpGet]
[Route("bank-accounts")]
public HttpResponseMessage GetBankAccounts(string version)
{
//...
}
}