繁体   English   中英

WebApi 2 POST方法返回“发现与请求匹配的多个动作”

[英]WebApi 2 POST Method returns “Multiple actions were found that match the request”

我的简单Web API应用程序不断返回“ 500 Internal Server Error”,并显示消息“发现多个符合要求的操作”,我认为这一定是路由问题。

是有关UserController和WebApiConfig文件的要点,它们可能会对此问题产生影响。

创建方法时,我遵循了Web api约定,但我不想在方法上使用属性来指定类型和路由。

如果我在POST方法上使用Route属性,它将起作用,但是对我来说这没有意义,为什么它在没有该属性的情况下不起作用,因为我对POST方法使用了命名约定。

前工作原理:

    [Route("api/user")]
    public IHttpActionResult Post([FromBody]User user)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest("Model state not valid!");
        }

        if (db.Users.ToList().Any(u => u.Username.ToLowerInvariant().Equals(user.Username.ToLowerInvariant())))
        {
            return BadRequest("Username already exists in the database!");
        }

        db.Users.Add(user);
        db.SaveChanges();

        return Ok($"Added user {user.Username}");
    }

任何想法都欢迎。

显然问题出在您的Dispose()方法上。 此方法与您的Post()操作冲突,并且WebAPI操作选择器无法决定选择哪个操作。

只需将Dispose()公开给受保护的对象即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM