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

时间:2019-05-30 14:02:32

标签: 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: [...]
});

在控制器中,我有:

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

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

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

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