Как изменить значение переменной методом PUT? - PullRequest
0 голосов
/ 18 февраля 2020

Мне нужно изменить значение переменной при нажатии кнопки. Для этого я сделал функцию обновления базы данных, используя 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; }

}

}

...