2013-09-30 2 views
0

У меня есть два метода, как показано ниже на GridController.Ошибка веб-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) 

Я вызываю эти веб-api из вызовов ajax. Когда у меня есть только один метод PostGridDataRow(), он работает нормально.

В тот момент я добавить второй пост функции PostData() я получаю ошибку:

Multiple actions were found.

Не должен работать нормально, как у меня есть разные имена действий? Я не определял маршруты маршрутизации.

ответ

2

Проблема заключается в том, что веб-API не может выбрать один правильный метод действий для сопоставления запроса POST. Вы предоставляете два действия, которые одинаково хороши для запроса POST, поскольку они оба принимают один комплексный параметр.

Чтобы решить вашу проблему, рассмотрите возможность создания двух отдельных контроллеров с одним методом POST.


Попробуйте ходить в обуви Web API: если вы должны были принять решение, какой метод действия для вызова только на основании поступающих данных, как в следующем, что бы вы выбрали?

{ foo: "bar" } 
Смежные вопросы