查看:
$.ajax({
dataType: 'json',
url: url,
data: JSON.stringify(form.serialize()),
contentType: "application/json; charset=utf-8",
type: "POST",
success: function (data) { },
});
控制器:
[HttpPost]
public ActionResult SendEmail(ContactUsModel model)
{
....
}
我在模型中收到空值。
我做错了什么?
答案 0 :(得分:2)
如果您要发布表单,则无需对其进行字符串化。删除JSON.stringify
。
$.ajax({
dataType: 'json',
url: url,
data: form.serialize(),
type: "POST",
success: function (data) {
},
});
只要表单包含模型的必要值, serialize()
已经将表单序列化为.NET将能够解析为模型的字符串。
另外,正如斯蒂芬所提到的,你不应该将application/json
设置为contentType
,因为它是作为urlencoded格式传递的。使用default application/x-www-form-urlencoded; charset=UTF-8
,完全不设置。