C# Ajax发布未发布列表

C# Ajax发布未发布列表,c#,jquery,ajax,asp.net-mvc-4,C#,Jquery,Ajax,Asp.net Mvc 4,我通过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

我通过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();
}
[HttpPost]
公共行动结果数据汇总表(列出doj月列表、Int16自月列表、Int16自年列表、Int16至月列表、Int16至年列表)
{
返回视图();
}
它在我的旧代码中运行得非常好。我不知道有什么问题。因为除了这个jquery数组之外,所有数据都在完美地传递。

尝试使用push

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

要禁用对象的深度序列化,需要将
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
时,将导致浅序列化。 下面的链接可能会有所帮助。

尝试使用int[]作为方法参数,而不是列表。或者尝试设置传统:true元素$(“#dojMonths”)的类型是什么?@AbhinavRanjan well设置传统有效。请将您的评论作为ans发布。这样我就可以接受d ans。@DKS我已经添加了我的评论作为答案。我很高兴这有帮助。