我正在尝试使用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 值进行描述。
这是怎么回事?
答案 0 :(得分:0)
任何传入 data.append 的值都将被转换为字符串。完成发送空值的唯一方法是发送空字符串。即 data.append('description', '');
这将向后端发送一个空值而不对其进行字符串化。