[英]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.