OData V4 系列 Action 与 Function

本文探讨了OData如何改进WebApi的不足之处,特别是在处理多样化的HTTP请求方面。通过配置示例展示了如何定义OData服务来支持更复杂的操作,如使用函数和动作路由,并提供了具体的实现代码和调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       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 会出现如下错误
        

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

 

             

 

转载于:https://www.cnblogs.com/Fengger/p/4960353.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值