c# - 从 ajax 发送一个空数组在 ASP.NET MVC 操作中给出了一个空参数

标签 c# jquery asp.net-mvc

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

$.ajax({
   url: ... ,
   data: { anArray: [] },
   ...
});

和 Controller 的 Action :

public ActionResult Test(int[] anArray) {
   ...
}

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

我也试过

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

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

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

如何在 Controller 的 Action 中接收一个空数组?我该怎么办?

最佳答案

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

看来最好的办法是自己实例化数组,如果它确实以 null 形式出现的话:

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

            //...
        }

关于c# - 从 ajax 发送一个空数组在 ASP.NET MVC 操作中给出了一个空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689322/

相关文章:

c# - 在中间件之前调用自定义 AuthenticationHandler

c# - 这个代码实现的静态初始化顺序是否具体?

c# - ExpandoObject 或字典的简写版本?

javascript - 如何将外部链接与 javascript 匹配(但忽略子域)?

asp.net-mvc - 我可以将 session 状态存储在 ASP.NET MVC 应用程序的现有 SQL Azure DB 中吗?

C# - 计算字符串列表中周围字符的总和

javascript - 在 jQuery .each() 中使用循环时遇到问题

javascript - 使用 AngularJS 和 javascript 显示/隐藏数组中的元素

jquery - C# MVC 页面上的 JQgrid DateTime 显示并应用了时区偏移量...想要显示服务器时间

c# - 这是IE10的BUG吗? ASP .NET MVC3 + HTML5 + IE10 预览