Ajax Post没有正确发送数据

时间:2014-05-06 19:51:29

标签: ajax

VB.net,MVC4,asp.net views。

我想知道为什么我发送参数(int),参数(模型)时无法发送或发生错误。

数据:

var ID = '<%: Model.ID%>';
var data = $('#dlg').find('form').serialize();

Ajax Post:

$.ajax({
  url: '<%: Url.Action("EST", "Now")%>',
  type: 'POST',
  data: { id: ID, model: data },
  success: function (rData) {
    $('#divE').html(rData);
  }
});

现在 - 控制器:

<HttpPost> _
    Function EST(id As Integer, model As EViewModel) As ActionResult

所以我传递一个modelID和表单数据,单独发送它们(带有修改)都可以工作,但是将它们一起发送它似乎使第二个参数为空。通过调试动作找到。

1 个答案:

答案 0 :(得分:1)

尝试使用JSON.stringify。 包含contentType:“application / json; charset = utf-8”,当你省略contentType值时,默认为'application / x-www-form-urlencoded; charset = UTF-8'当你发布数据时,这可能会成为一个麻烦

 $.ajax({
      url: '<%: Url.Action("EST", "Now")%>',
      type: 'POST',
      data: JSON.stringify({ id: ID, model: data }) ,
      contentType: "application/json; charset=utf-8",
      success: function (rData) {
        $('#divE').html(rData);
      }
    });