我正在尝试使用 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 项目中使用相同的代码,但没有发生这种情况,并且我得到了一个空值进行描述。
这里发生了什么事?
传递到 data.append 的任何值都将转换为字符串。完成发送空值的唯一方法是发送空字符串。即data.append('description', '');这将向后端发送一个空值而不对其进行字符串化。