繁体   English   中英

Ajax POST不发布列表

[英]Ajax POST not posting list

我正在通过Ajax调用将数据传递给控制器​​。 以下是ajax代码:

var month_List = [];
$('#dojMonths :selected').each(function (i, selectedItem) {
  month_List[i] = $(selectedItem).text();
});
var from_Month = $("#fromKPAMonthPicker").val();
var from_Year = $("#fromKPAYearPicker").val();
var to_Month = $("#toKPAMonthPicker").val();
var to_Year = $("#toKPAYearPicker").val();
$.ajax({
  url: '/Home/_DataByFromTo',
  type: "POST",
  data: {
    doj_Month_List: month_List,
    from_Month: from_Month,
    from_Year: from_Year,
    to_Month: to_Month,
    to_Year: to_Year
  },
  dataType: "html",
  success: function (data) {
    $("#divList").html(data);
  }
});

控制器动作方式:

[HttpPost]
public ActionResult _DataByFromTo(List<Int32> doj_Month_List, Int16 from_Month, Int16 from_Year, Int16 to_Month, Int16 to_Year)
{
  return View();
}

它在我的旧代码中运行得很好。 我不知道出什么问题了。 因为除了这个jquery数组之外,所有数据都传递完美。

要禁用对象的深度序列化,您需要将traditional属性设置为true

$.ajax({
    url: '/Home/_DataByFromTo',
    type: "POST",
    data: {
    doj_Month_List: month_List,
    from_Month: from_Month,
    from_Year: from_Year,
    to_Month: to_Month,
    to_Year: to_Year
    },
    dataType: "html",
    traditional: true,
    success: function (data) {
        $("#divList").html(data);
    }
});

设置为true将导致浅化序列化。 以下链接可能会有帮助。 https://api.jquery.com/jQuery.param/

尝试使用推

var month_List = [];
$('#dojMonths :selected').each(function (i, selectedItem) {
    month_List.push($(selectedItem).text());
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM