web api error找到与请求匹配的多个操作

时间:2013-02-06 02:44:58

标签: c# asp.net-mvc asp.net-web-api

我有一个帐户控制器,其中有两个操作:声明:

HttpResponseMessage PostAccount([FromBody] Account account)
public HttpResponseMessage PostLogin([FromBody]string email,[FromBody] string pass)

在fiddler中运行,我收到错误找到了与请求匹配的多个操作。我对有什么事情感到困惑。我应该为登录和注册制作两个控制器吗?是标准做法。

1 个答案:

答案 0 :(得分:3)

在Web API中,只能有一个来自主体的参数。如果你想在体内有多个东西,你应该将它们包装在容器类中。

您所遇到的错误正在发生,因为您有两个以“发布”开头的操作。您可以创建单独的控制器,如果您发布不同类型的实体,这是有意义的。或者,您可以使用基于操作的路由并创建如下所示的路由:

config.Routes.MapHttpRoute("ActionBased", "{controller}/{action}");

在POST时区分两个动作。