当我传递低数据量时,这些值会很好地执行操作,但是当我传递大量数据时,它以 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
这就是我传递的数据。
有人知道为什么会这样吗?
所以我可以使用完全不同的方法来解决我的问题。为此,我使用会话变量来存储我从数据库中检索到的数据,并且我可以在我想要的每个操作中使用它。
我正在使用 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
这就是我传递的数据。
有人知道为什么会这样吗?
所以我可以使用完全不同的方法来解决我的问题。为此,我使用会话变量来存储我从数据库中检索到的数据,并且我可以在我想要的每个操作中使用它。