Null FormData 值在 .netcore 2.2 控制器中转换为“null”字符串

Dan*_*ghi 5 c# ajax .net-core

我正在尝试使用 FormData 发送 Ajax POST。

var data = new FormData();
data.append('id', 1);
data.append('description', null);

$.ajax({
    type: 'POST',
    url: '/TestController/UpdateDescription',
    data: data,
    contentType: false,
    processData: false,
    success: [...]
});
Run Code Online (Sandbox Code Playgroud)

在控制器中,我有:

[HttpPost]
public JsonResult UpdateDescription(int id, string description)
{
    //description = "null", instead of null.
    bool isDescriptionNull = String.IsNullOrEmpty(description); //false!
}
Run Code Online (Sandbox Code Playgroud)

我在不同的 .NET 4.7 项目中使用相同的代码,但没有发生这种情况,并且我得到了一个值进行描述。

这里发生了什么事?

Sim*_*ony 2

传递到 data.append 的任何值都将转换为字符串。完成发送空值的唯一方法是发送空字符串。即data.append('description', '');这将向后端发送一个空值而不对其进行字符串化。