我在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()的那一刻我一直收到错误:
找到了多项行动。
由于我有不同的动作名称,它不应该正常工作吗? 我没有在路线映射中定义任何路线。
答案 0 :(得分:2)
手头的问题是Web API无法选择一种正确的操作方法来映射您的POST请求。您提供了两个与POST请求同样匹配的操作,因为它们都接受一个复杂的参数。
要解决您的问题,请考虑使用一个POST方法创建两个独立的控制器。
尝试使用Web API:如果您要根据下面的传入数据决定调用哪种操作方法,您会选择哪一种?
{ foo: "bar" }