【问题标题】:OData Method Routing Returns 404 not foundOData 方法路由返回 404 未找到
【发布时间】:2015-03-27 21:08:17
【问题描述】:

我已将 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 返回的响应说:

找不到资源。 请求的 URL:/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上的教程进行操作

【问题讨论】:

    标签: odata asp.net-web-api2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您会很快找到此功能。我找了2天。大写 url 请求取决于实体集名称

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

      【讨论】:

        猜你喜欢
        • 2018-10-07
        • 2015-01-07
        • 1970-01-01
        • 2021-06-18
        • 2020-10-26
        • 2014-06-25
        • 2021-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多