2016-02-24 39 views
0

在網頁API 2點的OData只讓我創建了一個OData的網絡API請求

我加入的路線一樣

config.MapODataServiceRoute(
      routeName: "ODataRoute", 
      routePrefix: "odata", 
      model: GetModel() 
     ); 

config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

我得到一個奇怪的結果後給出結果。

如果我先打開OData服務(建築/發佈後),它會顯示下面的圖像。 enter image description here

但如果我先打一個API請求,使未來的OData的要求,

然後我收到預期的JSON。

簡而言之,OData請求只有在發出API請求後纔有效。

任何人都可以說這是什麼原因?

回答

1

Order matters。嘗試在Web API配置後移動的OData配置:

config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 

config.MapODataServiceRoute(
     routeName: "ODataRoute", 
     routePrefix: "odata", 
     model: GetModel() 
    ); 

如果您沒有任何常規的Web API控制器,消除調用MapHttpRoute完全。