【问题标题】:WebApi 2 POST Method returns "Multiple actions were found that match the request"WebApi 2 POST 方法返回“找到与请求匹配的多个操作”
【发布时间】:2015-08-14 11:59:55
【问题描述】:

我的简单 Web api 应用程序不断返回“500 内部服务器错误”,并显示“找到与请求匹配的多个操作”消息,我认为这一定是路由问题。

Here 是有关可能对此问题产生影响的 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}");
    }

欢迎任何想法。

【问题讨论】:

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


【解决方案1】:

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

只需将 Dispose() 公开以保护。

【讨论】:

    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 2023-04-08
    • 2014-06-14
    • 2016-10-18
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多