Мне нужно изменить значение переменной при нажатии кнопки. Для этого я сделал функцию обновления базы данных, используя ajax. Вот что у меня есть:
function atualizaBD(novoEstado) {
$.ajax
({
url:`/api/IgnicoesAPI/${id}`,
type: 'PUT',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
Id : id,
Estado: novoEstado
}),
success: function (result) {
alert(result);
},
error: function () {
alert("ocorreu um erro!")
}
});
}
У меня есть переменная с именем Estado, и я хочу изменить значение этой переменной на новое, novoEstado. Вот мой контроллер:
[HttpPut("{id}")]
public async Task<IActionResult> PutIgnicoes([FromRoute] int id, [FromBody] Ignicoes ignicao, string novoEstado)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != ignicao.Id)
{
return BadRequest();
}
var ig = _context.Ignicoes.FirstOrDefault (ignicaoId => ignicaoId.Id.Equals(id));
ig.Estado = novoEstado;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!IgnicoesExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
Прямо сейчас, каждый раз, когда возникает ошибка, предупреждающая "ocorreu um erro"
Вот моя модель:
public class Ignicoes
{
public Ignicoes()
{
ListaOcorrencias = new HashSet<Ocorrencias>();
}
[Key]
public int Id { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
//estado(recusada, aceite, em avaliacao, concluido)
public string Estado { get; set; }
public DateTime DataInicioPropostaIgnicao { get; set; }
public DateTime DataDecisaoIgnicao { get; set; }
//lista de ocorrencias
public virtual ICollection<Ocorrencias> ListaOcorrencias { get; set; }
}
}