ASP.NET Web API OData批处理返回HTTP 404

问题描述 投票:1回答:1

我正在使用ASP.NET Web API v2和OData(v3)。我有一个用JayData v 1.3.6创建的客户端]

客户端上下文

onlinedb = new $todo.Types.ToDoContext({
    name: 'oData',
    oDataServiceHost: 'http://localhost:49375/odata'
});

服务器路由

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.ContainerName = "WebAPIDataCollectorContext";
    builder.EntitySet<TodoItem>("Todo");
    config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));

    // Web API routes
    config.MapHttpAttributeRoutes();

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

    config.EnableCors();
}

请求

选项/ odata / $ batch HTTP / 1.1(来自Fiddler)

Response

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:49375/odata/$batch'.","MessageDetail":"No route providing a controller name was found to match request URI 'http://localhost:49375/odata/$batch'"}

评论

http://localhost:49375/odata/Todo (GET operation) is working fine.

问题是:为什么批处理操作失败?

谢谢!

我正在使用ASP.NET Web API v2和OData(v3)。我有一个用JayData v 1.3.6制作的客户端,它的客户端上下文onlinedb = new $ todo.Types.ToDoContext({name:'oData',...

asp.net-web-api2 asp.net-web-api-routing jaydata
1个回答
0
投票

ASP.NET WebAPI OData不支持批量操作,但是您可以通过遵循本文-Introducing batch support in Web API and Web API OData]进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.