Asp.net mvc odata和webapi一起位于同一控制器中

Asp.net mvc odata和webapi一起位于同一控制器中,asp.net-mvc,rest,asp.net-web-api,routing,odata,Asp.net Mvc,Rest,Asp.net Web Api,Routing,Odata,我有售票员 public class ticketsController : ODataController { } 有没有可能做到这一点: GET /api/tickets?$skip={record_to_skip}&$top={pageSize} GET /api/tickets/{id} PUT /api/tickets/{id} DELETE /api/request/{id} 第一个GET方法使用odata路由,第二个GET、PUT和POST使

我有售票员

public class ticketsController : ODataController
{
}
有没有可能做到这一点:

GET     /api/tickets?$skip={record_to_skip}&$top={pageSize}
GET     /api/tickets/{id}
PUT     /api/tickets/{id}
DELETE  /api/request/{id} 
第一个GET方法使用odata路由,第二个GET、PUT和POST使用webapi路由


谢谢

可以,但必须使用OData属性。您的控制器应继承自ApiController而非ODataController,对于要查询的方法/操作,请使用OData“Queryable”属性对其进行绘制,有关更多详细信息,请查看以下内容:


另外,如果您搜索ODataQueryable属性,您应该会返回大量信息

,因为
/api/tickets/{id}
看起来像ODataURL,您将很难将它们拆分,尽管这是可能的。然而,我不明白你为什么要这么做,因为OData有一种方法可以完成你提到的所有事情-
/api/tickets(id)
-为什么不直接使用它呢?