[英]Route Prefix VS Controller Name ( Web api )
I was wondering that if we use RoutePrefix
attribute in our web api controller with a different name from controller's actual name. 我想知道如果我们在web api控制器中使用RoutePrefix
属性,其名称与控制器的实际名称不同。 So would it work or not? 它会起作用吗?
As far as i did 就我而言
[RouterPrefix("quotation")]
public class SaleOrderController : ApiController { ... }
if we define RoutePrefix
like above we can't access it via /quotation
but we can access it using saleorder
. 如果我们如上所述定义RoutePrefix
,我们无法通过/quotation
访问它,但我们可以使用saleorder
访问它。
So what is RoutePrefix
for or am i doing something wrong ? 什么是RoutePrefix
,或者我做错了什么?
To use default route use Route("")
要使用默认路由,请使用Route("")
[RoutePrefix("quotation")]
public class SaleOrderController : ApiController {
//GET quotation
[Route("")]
[HttpGet]
public IHttpActionResult GetAll() { ... }
}
Source: Attribute Routing in ASP.NET Web API 2 : Route Prefix 源: ASP.NET Web API 2中的属性路由:路由前缀
In order for it to work, you need to call the code below inside your WebApiConfig.Register()
method: 为了使它工作,您需要在WebApiConfig.Register()
方法中调用下面的代码:
config.MapHttpAttributeRoutes();
So your RoutePrefix
works as exptected: 所以你的RoutePrefix
就像被RoutePrefix
工作:
[RoutePrefix("quotation")]
public class SaleOrderController : ApiController
{
[Route("example")]
[HttpGet]
public IHttpActionResult Example()
{
return Ok();
}
[Route("another")]
[HttpGet]
public IHttpActionResult Another()
{
return Ok();
}
}
So your could access your apis like this: 所以你可以像这样访问你的api:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.