我正在使用ASP.NET Web API v2和OData(v3)。我有一个用JayData v 1.3.6创建的客户端]
客户端上下文
onlinedb = new $todo.Types.ToDoContext({ name: 'oData', oDataServiceHost: 'http://localhost:49375/odata' });
服务器路由
选项/ odata / $ batch HTTP / 1.1(来自Fiddler)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(); }
请求
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 WebAPI OData不支持批量操作,但是您可以通过遵循本文-Introducing batch support in Web API and Web API OData]进行配置。