OData V4 系列 Action 与 Function
了解过WebApi的都知道,WebApi默认方法 Get、Post、Put,如果增加其它过多Post方法即不能识别,还需增加其它配制,请求的Url还需加上Controller及Action,与Restful设计不一致,Odata可以解决这样的问题。
配制路由服务
builder.Namespace = "ProductService"; builder.EntityType<Product>().Collection .Function("MostExpensive") //函数路由 .Returns<double>(); builder.Namespace = "ProductService"; builder.EntityType<Product>() .Action("Rate") //Action路由 .Parameter<int>("Rating");
通过Get请求 MostExpensive 会出现如下错误
修改Web.config <modules runAllManagedModulesForAllRequests="true"></modules>
Action 请求
$.ajax({ url: "/Odata/Products(" + id + ")/ProductService.Rate", type: "POST", contentType: "application/json; charset=utf-8", dataType: "JSON", data: JSON.stringify({ Rating: 5 }), success: function (r) { debugger; }, error: function (e) { debugger; } });