webapi错误找到多个与请求匹配的操作

本文关键字:请求 操作 错误 webapi | 更新日期: 2023-09-27 17:57:45

我有一个accountcontroller,它有两个操作,这里是声明:

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

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

webapi错误找到多个与请求匹配的操作

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

您遇到的错误是因为您有两个以"Post"开头的操作。您可以创建单独的控制器,这在发布不同类型的实体时是有意义的。或者你可以使用基于动作的路由,创建一个看起来像这样的路由:

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

以便在POST时区分这两个操作。