我正在研究ASP.Net MVC项目,但遇到了一个(看似)非常奇怪的错误。我有一个名为Lens的模型,这是它的类结构
public class Lens
{
public int LensID { get; set; }
public string LensName { get; set; }
}
在我的一种观点中,我有一个镜头清单(在控制器中获得)。我在以下代码段中收到ArgumentOutOfRangeException
@for (int i = 0; i < Lenses.Count; i++)
{
<input type="text" data-LID="@Lenses[i].LensID" value="@Lenses[0].LensName" readonly id="lens @i" />
}
透镜是我从控制器获得的列表。我真的不明白为什么这段代码会引发异常。我在调试器中查看了Locals视图,发现在引发异常时,参数i的值为0,并且在Lenses的索引0处存在一个Lens对象。更陌生的是,当我使用foreach循环从完全相同的列表中提取数据时,检索对象没有问题。我也尝试过
@Lenses[0].LensID
相反,我遇到了同样的错误。另外,以防万一。根据“本地人”视图,“镜头”列表的计数为1。这是镜头的创建
List<Lens> Lenses = (List<Lens>)ViewBag.Lenses;
这是从控制器发送到视图的方式
LensQueries lQuery = new LensQueries();
ViewBag.Lenses = lQuery.GetAll();
这是LensQueries.GetAll()的参考
public List<Lens> GetAll()
{
List<Lens> retList;
using (var context = new SqlDbContext())
{
retList = context.Lenses.SqlQuery("select *from dbo.Lens").ToList<Lens>();
}
return retList;
}
答案 0 :(得分:0)
找到了解决方案(有点?)。仍然不知道为什么会中断,但是当我进入参考并删除某些程序集时,问题就消失了。
对于任何好奇的人,我删除的程序集都是pd.concat([long_df, long_df2.add_suffix('_T')], 1)
程序集,以及所有的子程序集。