我正在处理一个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,并且镜头的索引为0处有一个镜头对象。更奇怪的是,当我使用foreach循环从完全相同的列表中获取对象时,它没有任何问题。我也试过
@Lenses[0].LensID相反,我得到了同样的错误。另外,如果这是相关的话。根据Locals视图,镜头列表的计数为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;
}发布于 2018-07-26 07:57:34
找到了解决方案(有点?)。我仍然不知道为什么它会崩溃,但当我进入我的引用并删除某些程序集时,这个问题就消失了。
对于任何好奇的人来说,我删除的程序集是Owin.Security.Providers程序集,以及它的所有子程序集。
https://stackoverflow.com/questions/51527351
复制相似问题