ASP.NET WebAPI 2 Routing

本文关键字:Routing WebAPI NET ASP | 更新日期: 2023-09-27 18:10:43

我有一个关于ASP限制的问题。. NET Web API属性路由,但希望我只是在研究吮吸。在我的控制器中,我尝试这样做:

public class OrdersController : ApiController
{
    [HttpGet]
    [Route("{apiRoot}/customers/{id:int}/orders")]
    public IHttpActionResult GetCustomerOrders(int id) {...}
}

其中{apiRoot}在配置文件中定义。

这实际上可能不是必需的,但我想知道如何在路由属性中放置一个特定的路径,而不必编写静态路径。这里的一般想法应该是你只把文本放入路由路径,除了你的参数在{} ?

ASP.NET WebAPI 2 Routing

如何切换到使用RoutePrefix:

[MyRoutePrefix]
public class OrdersController : ApiController
{
    [HttpGet]
    [Route("customers/{id:int}/orders")]
    public IHttpActionResult GetCustomerOrders(int id) {...}
}
public class MyRoutePrefixAttribute : RoutePrefixAttribute
{
    public MyRoutePrefixAttribute() 
    {
        Prefix = "the route prefix";
    }
}

RoutePrefixAttribute不像RouteAttribute那样密封,所以扩展它应该允许你做你需要的事情。当然,假设一个类中的所有控制器都使用相同的根路径。

注意:我还没有机会尝试这个,但鉴于我所知道的属性路由,我不明白为什么它不应该工作。