OData方法路由返回404未找到

时间:2015-01-28 19:54:25

标签: odata asp.net-web-api2

我已将OData V4添加到我的Web Api 2应用程序中。 在默认路由之前的WebApiConfig寄存器方法中注册OData路由:

//defining the routes for our OData service
        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: "odata",
            model: GenerateEdmModel());

 private static IEdmModel GenerateEdmModel()
    {
        var builder = new ODataConventionModelBuilder();
        builder.EntitySet<Media>("Media");

        return builder.GetEdmModel();
    }

MediaController.cs

[EnableQuery]
    public IQueryable<ApiMedia> GetMedia(ODataQueryOptions<Media> query )
    {
       *querying and returning media*      
    }

但是当我致电localhost:80880/odata/media时 回复的回复说:

无法找到资源。 请求的网址:/ odata / media

调用localhost:80880/odata会返回:

{
  "@odata.context":"http://localhost:80880/odata/$metadata","value":[
    {
      "name":"Media","kind":"EntitySet","url":"Media"
    }
  ]
}

所以这里有什么不对吗?  (它是否在寻找名为odata的控制器?) 我按照http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint

上的教程进行了操作

2 个答案:

答案 0 :(得分:1)

你不能相信,但我应该输入 mysite.com/odata/Media 而不是 mysite.com/odata/media

答案 1 :(得分:0)

您将很快找到此功能。我在找2天。大写网址请求取决于实体集名称

builder.EntitySet<Media>("Media"); // if the changed to "media" will work !