【发布时间】:2016-04-23 12:00:59
【问题描述】:
没有人知道如何编辑记录!没有人执行此操作吗? POST、GET 和 DELETE 都可以工作,但 PUT,不管你做什么,都不起作用。没有人使用 ASP.NET 中的 Web API2 编辑记录吗?
我同时使用了 Hurl.it 和 POSTMAN,但它们都不能使用 PUT 执行编辑。它只会产生 400 错误 - 没有关于错误的信息,因为请求没有任何问题!
世界上是否有人设法用这个编辑记录?当赏金可用时,我将尽我所能 - 请有人告诉我们如何执行此操作。
怎么没人注意到这个 API 不能完全工作?我不知道还有什么地方可以问! ASP.NET 论坛上也没有人知道该怎么做。
HURL.IT
- 你的网址/api/objects/id
- 参数字段名:值(全部)
- 点击“启动请求”
- 字段被编辑
在 Web API 2 - 400 错误...没有其他信息(因为请求没有任何问题)
POSTMAN - 与上面相同(或多或少)
控制器内的代码:
// PUT: api/Table1s/5
[ResponseType(typeof(void))]
public IHttpActionResult PutTable1(int id, Table1 table1)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != table1.TestID)
{
return BadRequest();
}
db.Entry(table1).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!Table1Exists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
【问题讨论】:
-
How to create a Minimal, Complete, and Verifiable example 你到目前为止所尝试的。这样人们就可以用它来重现问题并给出更好的答案。
-
HTTP PUT - 我在问题中说过。这是一个简单的 HTTP 请求。您使用 PUT、URL 和 id,然后输入参数。它在 web api2 中不起作用。它是一个 API,所以我假设它可以执行操作来编辑记录 - 它给出 400 错误,并且似乎没有关于它为什么不起作用的信息。
-
它是在 Web API 2 项目中自动创建的。该方法在那里,因为它是脚手架的。我没有对代码进行任何修改,所以它只是带有默认脚手架的 Web API 2。
-
您得到 400 Bad Request 而不是 405 Method Not Allowed 的事实至少应该使 Put b> 可以使用。我在创建 RESTful api 时一直使用它。如果您希望其他人为您提供帮助,您需要提供有关您的设置方式以及如何提出请求的更多信息。
标签: asp.net asp.net-web-api asp.net-web-api2