2013-09-30 21 views
0

我在GridController上有两个像下面这样的方法。Web api错误找到了多个操作

[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) 

我正在从ajax调用调用这些web api。 当我只有一个方法PostGridDataRow()时,它工作正常。

我添加了第二个职位功能POSTDATA()我不断收到错误的时刻:

Multiple actions were found.

难道不应该正常工作,因为我有不同的动作的名称? 我还没有在路由映射中定义任何路由。

回答

2

手头的问题是,Web API无法选择一个正确的操作方法来映射您的POST请求。您提供了两个同样适合POST请求的操作,因为它们都接受一个复杂参数。

要解决您的问题,请考虑分别使用一种POST方法创建两个单独的控制器。


尽量走在网页API的鞋子:如果你是做哪个动作方法调用完全基于像下面,你会拿哪个输入数据的决定吗?

{ foo: "bar" }