我的简单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}");
}
欢迎任何想法。
答案 0 :(得分:1)
显然,你的Dispose()方法存在问题。此方法与Post()操作冲突,WebAPI操作选择器无法决定选择哪个操作。
只需将Dispose()公开为受保护。