OData V4 系列 Action 与 Function

时间:2023-12-11 23:31:02

OData 学习目录

了解过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 会出现如下错误
         OData V4 系列  Action 与 Function

修改Web.config   <modules runAllManagedModulesForAllRequests="true"></modules>

OData V4 系列  Action 与 Function

OData V4 系列  Action 与 Function

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;
}
});