2013-09-30 27 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" }