我想知道如果我们在web api控制器中使用RoutePrefix
属性,其名称与控制器的实际名称不同。它会起作用吗?
就我而言
[RouterPrefix("quotation")]
public class SaleOrderController : ApiController { ... }
如果我们如上所述定义RoutePrefix
,我们无法通过/quotation
访问它,但我们可以使用saleorder
访问它。
那么RoutePrefix
或者我做错了什么?
答案 0 :(得分:5)
使用默认路线Route("")
[RoutePrefix("quotation")]
public class SaleOrderController : ApiController {
//GET quotation
[Route("")]
[HttpGet]
public IHttpActionResult GetAll() { ... }
}
答案 1 :(得分:4)
要使其正常工作,您需要在WebApiConfig.Register()
方法中调用以下代码:
config.MapHttpAttributeRoutes();
因此,RoutePrefix
的工作原理如下:
[RoutePrefix("quotation")]
public class SaleOrderController : ApiController
{
[Route("example")]
[HttpGet]
public IHttpActionResult Example()
{
return Ok();
}
[Route("another")]
[HttpGet]
public IHttpActionResult Another()
{
return Ok();
}
}
所以你可以这样访问你的api: