类型' System.NullReferenceException'的例外情况发生在App_Web _ ***。dll中

时间:2014-10-09 21:15:38

标签: c# asp.net-mvc asp.net-mvc-5.2

这是我的代码

@if (ViewBag.last5Articles != null)
{
    List<Article> articles = ViewBag.last5Articles;
    foreach (var article in articles)
    {
        <div class="col-md-12">
            <div class="row">
                <h2>@article.Title</h2>
            </div>
            <div class="row">
                <div class="col-md-6">
                    <p>@article.Body</p>
                </div>
            </div>
        </div>
    }
}

我在foreach循环的开头放了一个断点。我可以看到该文章不是null,它有一个标题和一个正文。但是当我到达文章时。我和F10(Step Over)突然变得空虚了!

  

&#34;发生类型'System.NullReferenceException'的例外情况   App_Web_ayg111kp.dll但未在用户代码&#34;

中处理

。 当我完成调试时,黄色屏幕欢迎使用此消息&#34; Object reference not set to an instance of an object&#34;。

请有人向我解释这个问题。我使用的是.NET 4.5.2和MVC 5.2

1 个答案:

答案 0 :(得分:5)

我找到了我(同样)问题的答案here

尝试在错误后注释掉下一个代码行。

在你的情况下,如果你有

<div class="col-md-12">
            <div class="row">
                <h2>@article.Title</h2>
            </div>
            <div class="row">
                <div class="col-md-6">
                    <p>@article.Body</p>
                </div>
            </div>
        </div>
...more html stuff...

<p> @article.SomethingElse </p>

尝试评论&#39; @ article.SomethinElse&#39;并查看它是否清除了错误

来自链接: &#34;有时,编译器无法指向剃刀视图中具有特定类型错误的确切行,可能是因为它无法将其行号保留在堆栈跟踪或某处。我在Null Reference Exception中找到了这种情况,并且在Url.Content中传递了null。

因此,当堆栈跟踪显示的行没有出现任何错误时,检查剃刀视图中的下一个C#语句是有帮助的。&#34;