当我传递低数据量时,这些值会很好地执行操作,但是当我传递大量数据时,它以 null 形式到达

When i pass low data quantity the values go to the action fine, but when i pass high quantity that arrives as null

我正在使用 asp.net 核心和 c# 开发一个学校项目,我的问题是当我单击一个按钮时,我需要将我在视图中的数据传递给一个新的操作。 我正在使用该表单将数据发送到我的方法

<form asp-action="PessoasCOunt" method="post">
        
   
    <input asp-for="Inicial" hidden/>
    <input asp-for="Final" hidden/>
    <input asp-for="AcessoVisita" hidden />
    <input asp-for="tempo" hidden/>
    <input asp-for="ApZona" hidden/>
      @foreach(var i in Model.ap)
        {
            <input asp-for="ap" hidden/>
        }

    
        @for(int i=0; i<Model.dados2.Count();i++)
        { 
            <input asp-for="dados2[i].ap_id" hidden/>
            <input asp-for="dados2[i].ap_name" hidden/>
            <input asp-for="dados2[i].numeroAcessos" hidden/>
            <input asp-for="dados2[i].year" hidden/>
            <input asp-for="dados2[i].MES" hidden/>
        <input asp-for="dados2[i].DIA" hidden/>
        
    }
    <div class="form-group"style="margin-bottom:2%;margin-top:2%;">
        <input type="submit" value="Consultar" class="btn btn-primary" />
    </div>
               
</form>

这就是我传递给方法的结构。

public class dadosPassar
    {
        public List<Stored1>? dados2 { get; set; }
        public List<L_AccessPoint>? Aps { get; set; } = new List<L_AccessPoint>();
        public List<L_Zone>? Zones { get; set; } = new List<L_Zone>();
        public List<int>? ap { get; set; } 
        public DateTime Inicial { get; set; }
        public DateTime Final { get; set; }
        public string? AcessoVisita { get; set; }
        public string? tempo { get; set; }
        public string? ApZona { get; set; }
    }

还有那个方法

public FileResult PessoasCOunt(dadosPassar dp)
        {
            //Retornar dados dos Aps escolhidos
            var objap = new List<L_AccessPoint>();
            if (dp.ApZona == "zonas")
            {
                for (int i = 0; i < dp.ap.Count(); i++)
                {
                    var objzones = _db.L_AccessPoint.Where(s => s.zone_id == dp.ap[i]).ToList();
                    for (int j = 0; j < objzones.Count; j++)
                    {
                        objap.Add(objzones[j]);
                    }
                }
                dp.Aps = objap;
            }
            else
            {
                //ds.Apzona é aps
                for (int i = 0; i < dp.ap.Count(); i++)
                {
                    var objzones = _db.L_AccessPoint.Where(s => s.ap_id == dp.ap[i]).ToList();
                    for (int j = 0; j < objzones.Count; j++)
                    {
                        objap.Add(objzones[j]);
                    }
                }
                dp.Aps = objap;
            }
            //criar stringBuilder para poder retornar o ficheiro
            StringBuilder sb = new StringBuilder();
            string filename = dp.AcessoVisita + dp.Inicial.ToString() + "_" + dp.Final.ToString() + ".csv";
            return File(System.Text.Encoding.Unicode.GetBytes(sb.ToString()), "text/csv", filename);
        }

当我select只有6个元素时,数据正确到达方法

但是当我传递大量数据时,值到达 null

这就是我传递的数据。

有人知道为什么会这样吗?

所以我可以使用完全不同的方法来解决我的问题。为此,我使用会话变量来存储我从数据库中检索到的数据,并且我可以在我想要的每个操作中使用它。