WebApi 2 POST方法返回"找到与请求匹配的多个操作"

时间:2015-08-14 11:59:56

标签: c# post asp.net-web-api2

我的简单web api应用程序不断返回" 500内部服务器错误"消息"找到符合请求的多个操作"我认为这一定是路由问题。

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

我在创建方法时使用了web api约定,并且我不想在方法上使用属性来指定类型和路径。

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

ex有效:

    [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}");
    }

欢迎任何想法。

1 个答案:

答案 0 :(得分:1)

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

只需将Dispose()公开为受保护。