如何发布一个空数组(整数)(jQuery - > MVC 3)

Mat*_*els 7 arrays jquery asp.net-mvc-3

使用jQuery我张贴的阵列int通过将阵列中的数据参数,像这样我的MVC 3应用程序:data: { myIntArray: myIntArray }.在我的控制器中,接收操作具有参数int[] myIntArray.

这在大多数情况下都很顺利,除非myIntArray是空的.在请求中,我看到以下内容myIntArray=(请注意"="后面没有空格).回到我的MVC 3控制器,这将转换为包含一个int0 的数组.

在我看来,通过发布一个空数组,我在做一些非常错误的事情.我可以通过以不同的方式处理数组为空的情况来解决这个问题.不过,我觉得这应该是可能的.

提前致谢.

额外信息:

  • 我使用jQuery 1.5.1(无法升级此项目).
  • myIntArray初始化为new Array().

Dar*_*rov 5

你可以这样做:

var myIntArray = new Array();

// add elements or leave empty
myIntArray.push(1);
myIntArray.push(5);

var data = myIntArray.length > 0 ? { myIntArray: myIntArray } : null;

$.ajax({
    url: '@Url.Action("someAction")',
    type: 'POST',
    data: data,
    traditional: true,
    success: function (result) {
        console.log(result);
    }
});
Run Code Online (Sandbox Code Playgroud)

或使用JSON请求:

var myIntArray = new Array();
// add elements or leave empty
myIntArray.push(1);
myIntArray.push(5);

$.ajax({
    url: '@Url.Action("someAction")',
    type: 'POST',
    data: JSON.stringify(myIntArray),
    contentType: 'application/json',
    success: function (result) {
        console.log(result);
    }
});
Run Code Online (Sandbox Code Playgroud)