为什么在DELETE中发送的Guid总是默认值?

时间:2018-09-11 06:36:50

标签: c# jquery .net ajax asp.net-core-webapi

我在Web Api中拥有此HttpDelete方法:

[HttpDelete]
public async Task<IActionResult> Delete(Guid id) <== {00000000-0000-0000-0000-000000000000}
{
    //some code
    return Ok("{\"msg\":\"success\"}");
}

这是我的AJAX调用:

function deletePatient(idPatient) { 
    $.ajax({
        url: 'api/Patient',
        method: 'DELETE',
        async: false,
        data: idPatient, 
        dataType: 'json',
        success: function (response) {
            alert("Ok !");
        },
        error: function (response) {
            alert("Delete : Une erreur est survenue, merci de retenter plus tard.");
        }
    });
}

我正在使用fnRowCallback初始化用于呼叫deletePatient的数据表,如:

"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
    var idPatient = aData[4];
    if (idPatient != null) {
        $('td:eq(4)', nRow).html('<img id="' + idPatient + '"  onclick="deletePatient(&quot;' + idPatient + '&quot;);" src="../images/delete.png" />');
    }
}

当我调试通过Delete方法接收到的Guid时,我只会得到Guid的默认值:{00000000-0000-0000-0000-000000000000}

我的错误在哪里,有人可以帮我吗?

谢谢。

编辑

使用邮递员,它可以正常工作(原始,JSON(application / json)):

  

url:api /患者/ d4fee000-aa6a-4673-81cc-33e990509d73

确切网址:

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,所以我稍微修改一下电话:

function deletePatient(idPatient) {
    var url = "api/Patient/" + idPatient;
    $.ajax({
        url: url,
        method: 'DELETE',
        dataType: 'json',
        success: function (response) {
            alert("Ok !");
        },
        error: function (response) {
            alert("Delete : Une erreur est survenue, merci de retenter plus tard.");
        }
    });
}

和我的http delete方法可以正确捕获ID:

[HttpDelete("{id}")]
public async Task<IActionResult> Delete(Guid id)
{...}

感谢大家的帮助,它现在可以完美运行。