找到了与请求api调用匹配的多个操作

时间:2017-04-20 13:01:01

标签: c#

所以我用这个签名进行了旧的api调用

public dynamic Add(String organizationId, String locationId, String orderType, String massTypeId, double amount, DateTime from, DateTime to, double distance, Driving driving)

现在我改为喜欢这个

public dynamic Add(String organizationId, String locationId, String orderType, String massTypeId, double amount, DateTime from, DateTime to, double distance, bool driving)

唯一的区别是最后一个参数的类型。现在我必须在我的应用程序部署之前进行旧的api调用。但如果在本地尝试,我会收到此错误

  

找到了与请求匹配的多项操作

在我的客户数据中,最后一个参数如下所示

driving : true

我以JSON格式发送数据。

有没有人知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

找到与请求匹配的多个操作, 在迁移到新API时,最好使用请求对象。 为了现在使用这两个api,您可以将路径名称指定为特定于新路径的装饰

[Route("MyNewApiAdd")]
public dynamic Add([FromBody]ReqObject req);

并定义新的

    public class ReqObject 
    {
    String organizationId{get;set;}
    String locationId{get;set;} 
    String orderType{get;set;}
    String massTypeId{get;set;}
    double amount{get;set;}
    DateTime from{get;set;}
    DateTime to{get;set;}
    double distance{get;set;}
    bool driving{get;set;}
    }

答案 1 :(得分:0)

这适用于Web API吗?如果没有,请忽略。如果是的话,我认为你所做的事是不可能的。你所做的是重载不受支持的API方法,而不是像this那样。

见样本:

[ActionName("GetById")]
public Foo Get(int id) { //whatever }

[ActionName("GetByString")]
public Foo Get(string id) { //whatever }

[ActionName("GetByGUID")]
public Foo Get(Guid id)  { //whatever }


谢谢!
useAIble