使用AJAX

时间:2016-08-26 07:40:30

标签: jquery ajax asp.net-mvc post

查看:

 $.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)
{
    ....
}

我在模型中收到空值。

我做错了什么?

1 个答案:

答案 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,完全不设置。