Как я могу использовать запрос PUT, используя Ajax, чтобы изменить значение переменной? - PullRequest
0 голосов
/ 15 января 2020

Я использую ASP. NET Core, и в моем индексном представлении я хочу изменить значение переменной при нажатии кнопки. У меня есть класс, который имеет свойство под названием "Estado". В моем индексе у меня есть карта с разными маркерами, и у каждого маркера есть информационное окно с тремя кнопками («Aceitar», «Recusar», «Concluido»). Когда я нажимаю одну из этих кнопок, я хочу изменить значение переменной «Estado» на другое значение в зависимости от кнопки, на которую нажимают. Вот функция в моем индексе:

 function atualizaBD(id, novoEstado) {
     $.ajax
        ({
            url: '/api/IgnicoesAPI',
            type: 'PUT',
            datatyoe: JSON.stringify({
                id: +id,
                novoEstado: +novoEstado
            }),
            success: function (result) {

                     //What do I do here
                })
            },
            error: function () {
                alert("ocorreu um erro!")
            },
        });
}

Я не уверен, как использовать запрос PUT. Вот запрос PUT на мой контроллер:

//// PUT: api/IgnicoesAPI/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutIgnicoes([FromRoute] int id, [FromBody] Ignicoes ignicoes)
    {
        if (!ModelState.IsValid)
       {
            return BadRequest(ModelState);
        }

        if (id != ignicoes.Id)
        {
            return BadRequest();
        }

        _context.Entry(ignicoes).State = EntityState.Modified;

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!IgnicoesExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return NoContent();
    }

1 Ответ

0 голосов
/ 15 января 2020

Вы должны исправить несколько вещей. Тип данных - это тип ответа, который вы ожидаете получить. ContentType для типа данных, которые вы отправляете. Если вы хотите передать данные в ваш запрос, для которого требуется идентификатор из маршрута, тогда вам нужно передать их в URL. Если вы хотите передать данные как объекты, вам нужно передать их в опцию data. Больше информации в документации .

Код после исправлений:

 function atualizaBD(id, novoEstado) {
     $.ajax
        ({
            url: `/api/IgnicoesAPI/${id}`,
            type: 'PUT',
            data: JSON.stringify({
                id: +id,
                novoEstado: +novoEstado
            }),
            success: function (result) {
                     //What do I do here
                })
            },
            error: function () {
                alert("ocorreu um erro!")
            },
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...