我有一个帐户控制器,其中有两个操作:声明:
HttpResponseMessage PostAccount([FromBody] Account account)
public HttpResponseMessage PostLogin([FromBody]string email,[FromBody] string pass)
在fiddler中运行,我收到错误找到了与请求匹配的多个操作。我对有什么事情感到困惑。我应该为登录和注册制作两个控制器吗?是标准做法。
答案 0 :(得分:3)
在Web API中,只能有一个来自主体的参数。如果你想在体内有多个东西,你应该将它们包装在容器类中。
您所遇到的错误正在发生,因为您有两个以“发布”开头的操作。您可以创建单独的控制器,如果您发布不同类型的实体,这是有意义的。或者,您可以使用基于操作的路由并创建如下所示的路由:
config.Routes.MapHttpRoute("ActionBased", "{controller}/{action}");
在POST时区分两个动作。