【发布时间】:2020-06-28 22:14:10
【问题描述】:
我有这个界面
当点击其中一个按钮时,它会更新数据库。例如,我有一个名为“Estado”的变量,默认情况下是“emAvaliacao”,但是当按下“Aceite”按钮时,“Estado”会变为“Aceite”。
以下是我使用的函数:
function atualizaBD(idmarcador, novoEstado) {
$.ajax
({
url: `/api/IgnicoesAPI/${idmarcador}`,
type: 'PUT',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
Id: +idmarcador,
Estado: novoEstado
}),
success: function (result) {
connection.invoke("PostMarker").catch(function (err) {
return console.error(err.toString());
});
},
error: function () {
alert("ocorreu um erro!")
}
});
}
这里是 PUT 函数:
[HttpPut("{id}")]
public async Task<IActionResult> PutIgnicoes([FromRoute] int id, [FromBody] Ignicoes ignicao)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != ignicao.Id)
{
return BadRequest();
}
var dataDecisao = DateTime.Now;
var ig = _context.Ignicoes.FirstOrDefault (ignicaoId => ignicaoId.Id.Equals(id));
if (ig != null)
{
ig.Estado = ignicao.Estado;
ig.DataDecisaoIgnicao = dataDecisao;
}
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!IgnicoesExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
现在它给了我一个错误 400,我不知道为什么或如何解决这个问题。有人可以帮我吗?
【问题讨论】:
-
为什么
Id: +idmarcador中有+? -
应该将
Id大写(应该是id)? Javascript 区分大小写。
标签: javascript c# ajax asp.net-core