簡體   English   中英

單擊按鈕時,數據庫將更新

[英]When button is clicked, the database is updated

我有這個界面

在此處輸入圖像描述

單擊其中一個按鈕時,它會更新數據庫。 例如,我有一個名為“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 function:

    [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,我不知道為什么或如何解決這個問題。 有人能幫我嗎?

嘗試使用調試來定位導致異常的特定行。

  1. url您是否發布了通往您的行動PutIgnicoes的路線?

    從郵政編碼我看不到正確的屬性路由[HttpPut("~/api/IgnicoesAPI/{id}")]

  2. 檢查您發布到操作的參數。

數據:JSON.stringify({ ID:+idmarcador,Estado:novoEstado }),

public async Task<IActionResult> PutIgnicoes([FromRoute] int id, [FromBody] Ignicoes ignicao)

錯誤 400 主要是由於return BadRequest(); 在你的行動中。 您應該調試以查看有效負載並檢查數據是否可以綁定到 Ignicoes model。

如果還是有問題。 請展示使用Ignicoes class 和請求負載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM