从 ajax 发送空数组在 ASP.NET MVC 操作中给出了 null 参数

Sna*_*yes 7 c# asp.net-mvc jquery

我有一个简单的 ajax 调用,例如:

$.ajax({
   url: ... ,
   data: { anArray: [] },
   ...
});
Run Code Online (Sandbox Code Playgroud)

和控制器的动作:

public ActionResult Test(int[] anArray) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

似乎anArray是 null 而不是空数组。

我也尝试过

  • List<int>
  • string[]
  • object[]

但对于上述所有内容,我看到anArray参数为空。

我读过类似的问题,但有与模型参数相关的问题,我这里没有模型。

如何在控制器的操作中接收空数组?我应该怎么办 ?

小智 3

看来 MVC 将空数组映射为 null;这是出于某种原因设计的。我想你无论如何也不能用零项数组做太多事情。

看来你最好的选择是自己实例化数组(如果它确实为空):

        public ActionResult Test(int[] anArray)
        {
            anArray = anArray ?? new int[0];

            //...
        }
Run Code Online (Sandbox Code Playgroud)