首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我会得到ArgumentOutOfRangeException

为什么我会得到ArgumentOutOfRangeException
EN

Stack Overflow用户
提问于 2018-07-26 04:42:42
回答 1查看 142关注 0票数 0

我正在处理一个ASP.Net MVC项目,我遇到了一个(似乎)非常奇怪的错误。我有一个名为Lens的模型,下面是它的类结构

代码语言:javascript
复制
public class Lens
{
    public int LensID { get; set; }
    public string LensName { get; set; }
}

在我的一个视图中,我有一个镜头列表(在控制器中获得)。我在下面的代码片段中得到了一个ArgumentOutOfRangeException

代码语言:javascript
复制
@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循环从完全相同的列表中获取对象时,它没有任何问题。我也试过

代码语言:javascript
复制
@Lenses[0].LensID

相反,我得到了同样的错误。另外,如果这是相关的话。根据Locals视图,镜头列表的计数为1。

代码语言:javascript
复制
List<Lens> Lenses = (List<Lens>)ViewBag.Lenses;

下面是它是如何从控制器发送到视图的

代码语言:javascript
复制
LensQueries lQuery = new LensQueries();
ViewBag.Lenses = lQuery.GetAll();

下面是LensQueries.GetAll()的引用

代码语言:javascript
复制
public List<Lens> GetAll()
    {
        List<Lens> retList;
        using (var context = new SqlDbContext())
        {
            retList = context.Lenses.SqlQuery("select *from dbo.Lens").ToList<Lens>();
        }
        return retList;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 07:57:34

找到了解决方案(有点?)。我仍然不知道为什么它会崩溃,但当我进入我的引用并删除某些程序集时,这个问题就消失了。

对于任何好奇的人来说,我删除的程序集是Owin.Security.Providers程序集,以及它的所有子程序集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51527351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档