0

我在 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)   

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

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

发现多个动作。

由于我有不同的动作名称,它不应该正常工作吗?我没有在路由映射中定义任何路由。

4

1 回答 1

2

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

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


试着从 Web API 的角度出发:如果您要仅根据传入的数据来决定调用哪个操作方法,如下所示,您会选择哪一个?

{ foo: "bar" }
于 2013-10-01T07:35:31.423 回答