C# Web api错误发现多个操作

C# Web api错误发现多个操作,c#,asp.net-web-api,C#,Asp.net Web Api,我在GridController上有两种方法,如下所示 [System.Web.Http.AcceptVerbs("POST")] [System.Web.Http.ActionName("PostData")] public List<GridDataRow> PostData(GridDataParam data) [System.Web.Http.AcceptVerbs("POST")] [System.Web.Http.ActionName("PostGridDataRow

我在GridController上有两种方法,如下所示

[System.Web.Http.AcceptVerbs("POST")]
[System.Web.Http.ActionName("PostData")]
public List<GridDataRow> PostData(GridDataParam data)

[System.Web.Http.AcceptVerbs("POST")]
[System.Web.Http.ActionName("PostGridDataRow")]
public GridDataRow PostGridDataRow(RowDataParam data)   
[System.Web.Http.AcceptVerbs(“POST”)]
[System.Web.Http.ActionName(“PostData”)]
公共列表PostData(GridDataParam数据)
[System.Web.Http.AcceptVerbs(“POST”)]
[System.Web.Http.ActionName(“PostGridDataRow”)]
公共GridDataRow PostGridDataRow(RowDataParam数据)
我通过ajax调用调用这些web api。 当我只有一个方法PostGridDataRow()时,它可以正常工作

在添加第二个post函数PostData()的那一刻,我不断收到错误:

发现多个操作

我有不同的动作名称,这不是很好吗?
我没有在路由映射中定义任何路由。

当前的问题是Web API无法选择一种正确的操作方法来映射POST请求。您将提供两个操作,这两个操作对于POST请求同样匹配,因为它们都接受一个复杂参数

为了解决你的问题,考虑用一个POST方法创建两个单独的控制器。
试着站在WebAPI的立场上:如果您要根据下面这样的传入数据来决定调用哪种操作方法,您会选择哪一种

{ foo: "bar" }