簡體   English   中英

ASP.NET WebAPI 2路由

[英]ASP.NET WebAPI 2 Routing

我只是對有關ASP.NET Web API屬性路由的局限性有一個簡短的問題,但希望我能從研究中受益。 在我的控制器中,我正在嘗試執行以下操作:

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

{apiRoot}在其中一個配置文件中定義的位置。

這實際上可能不是必需的,但是我想知道如何在路由屬性中放入特定路徑而不必編寫靜態路徑。 這里的一般想法是,除了{}參數外,您只將文本放入路徑中嗎?

如何切換到使用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那樣密封,因此對其進行擴展應該可以滿足您的需求。 當然,假設一個類中的所有控制器都使用相同的根路徑。

注意:我沒有機會嘗試此操作,但是鑒於我對屬性路由的了解,我不知道為什么它不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM