Select 默认值抛出异常 asp.net c#
Select default value throws an exception asp.net c#
我正在开发一个学校项目(使用 c#,asp.net),该项目从具有 selects 的视图和其他输入(日期和文本)接收数据输入,从这个视图:
View that receive data
有这个代码,日期的输入(2个)
<input id="Inicial" type="date" name="Inicial" />
这是第一个select
<select asp-for="AcessoVisita" class="form-control">
<option value="null">Escolha uma opção para o filtro</option>
<option value="acessos">Número de Acessos</option>
<option value="visitas">Número de Visitas</option>
</select>
另一个select是
<select asp-for="tempo" class="form-control">
<option value="null"> Escolha uma opção para o filtro </option>
<option value="day"> Dia </option>
<option value="month"> Mês </option>
<option value="year"> Ano </option>
</select>
最后一个 select 是,我使用 foreach cicle 为我拥有的所有“Aps”创建选项。
<select asp-for="ap" class="form-control">
<option value="null"> Escolha um Ap ou todos</option>
<option value="todos"> Todos os AP's' </option>
@foreach(var i in Model.Aps)
{
<option value=@i.ap_id> @i.ap_name </option>
}
</select>
这就是他的模型和变量
public class dadosPassar
{
public List<L_AccessPoint> Aps { get; set; }
public DateTime Inicial { get; set; }
public DateTime Final { get; set; }
public string? AcessoVisita { get; set; }
public string? ap { get; set; }
public string? tempo { get; set; }
}
这就是 L_AcessPoint 结构
public class L_AccessPoint
{
public string? ap_name { get; set; }
public short? zone_id { get; set; }
public decimal? latitude { get; set; }
public decimal? longitude { get; set; }
public string? ap_eth_mac { get; set; }
public DateTime ts { get; set; }
public short? ap_id { get; set; }
public Byte? type { get; set; }
public bool? Active { get; set; }
}
我已经测试了当我让一些输入值成为默认值时会发生什么,代码会抛出以下异常:
Exception throwed
那是来自数据库的 return
Database return
我可以验证是否所有其他变量都没有默认值,但在最后一个 select 中抛出异常,我不知道为什么。
那么我做错了什么?
我怎样才能做到这一点?
非常感谢您的帮助。
我遇到的问题是因为我忘记将模型传递给视图。
我正在渲染这样的视图。
if(ds.Inicial >=ds.Final || ds.AcessoVisita == "null" || ds.tempo == "null" || ds.ap== "null")
{
return View("Filtros");
}
所以我解决了通过视图传递 dp 的问题
if(ds.Inicial >=ds.Final || ds.AcessoVisita == "null" || ds.tempo == "null" || ds.ap== "null")
{
dadosPassar dp = new dadosPassar();
var objAPs = _db.L_AccessPoint.ToList();
dp.Aps = objAPs;
return View("Filtros", dp);
}
我正在开发一个学校项目(使用 c#,asp.net),该项目从具有 selects 的视图和其他输入(日期和文本)接收数据输入,从这个视图:
View that receive data
有这个代码,日期的输入(2个)
<input id="Inicial" type="date" name="Inicial" />
这是第一个select
<select asp-for="AcessoVisita" class="form-control">
<option value="null">Escolha uma opção para o filtro</option>
<option value="acessos">Número de Acessos</option>
<option value="visitas">Número de Visitas</option>
</select>
另一个select是
<select asp-for="tempo" class="form-control">
<option value="null"> Escolha uma opção para o filtro </option>
<option value="day"> Dia </option>
<option value="month"> Mês </option>
<option value="year"> Ano </option>
</select>
最后一个 select 是,我使用 foreach cicle 为我拥有的所有“Aps”创建选项。
<select asp-for="ap" class="form-control">
<option value="null"> Escolha um Ap ou todos</option>
<option value="todos"> Todos os AP's' </option>
@foreach(var i in Model.Aps)
{
<option value=@i.ap_id> @i.ap_name </option>
}
</select>
这就是他的模型和变量
public class dadosPassar
{
public List<L_AccessPoint> Aps { get; set; }
public DateTime Inicial { get; set; }
public DateTime Final { get; set; }
public string? AcessoVisita { get; set; }
public string? ap { get; set; }
public string? tempo { get; set; }
}
这就是 L_AcessPoint 结构
public class L_AccessPoint
{
public string? ap_name { get; set; }
public short? zone_id { get; set; }
public decimal? latitude { get; set; }
public decimal? longitude { get; set; }
public string? ap_eth_mac { get; set; }
public DateTime ts { get; set; }
public short? ap_id { get; set; }
public Byte? type { get; set; }
public bool? Active { get; set; }
}
我已经测试了当我让一些输入值成为默认值时会发生什么,代码会抛出以下异常: Exception throwed
那是来自数据库的 return Database return 我可以验证是否所有其他变量都没有默认值,但在最后一个 select 中抛出异常,我不知道为什么。
那么我做错了什么? 我怎样才能做到这一点?
非常感谢您的帮助。
我遇到的问题是因为我忘记将模型传递给视图。 我正在渲染这样的视图。
if(ds.Inicial >=ds.Final || ds.AcessoVisita == "null" || ds.tempo == "null" || ds.ap== "null")
{
return View("Filtros");
}
所以我解决了通过视图传递 dp 的问题
if(ds.Inicial >=ds.Final || ds.AcessoVisita == "null" || ds.tempo == "null" || ds.ap== "null")
{
dadosPassar dp = new dadosPassar();
var objAPs = _db.L_AccessPoint.ToList();
dp.Aps = objAPs;
return View("Filtros", dp);
}