App_Web _***.dll中出现"System.NullReferenceException"类型的异常

MAl*_*hri 6 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>
    }
}
Run Code Online (Sandbox Code Playgroud)

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

" 'System.NullReferenceException'App_Web_ayg111kp.dll中发生了类型异常,但未在用户代码中处理"

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

任何人都可以向我解释这个问题.我正在使用.NET 4.5.2和MVC 5.2

May*_*lor 5

我在这里找到了我(同样)问题的答案

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

在你的情况下,如果你有

<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>
Run Code Online (Sandbox Code Playgroud)

尝试评论'@ article.SomethinElse'并查看它是否清除了错误

从链接: "有时编译器无法指向剃刀视图中具有特定类型错误的确切行可能是因为它无法将它们的行号保留在堆栈跟踪或某处.我发现这种情况为Null Reference Exception,当null为传递给Url.Content.

因此,当您在堆栈跟踪显示的行上没有出现任何错误时,检查剃刀视图中的下一个C#语句会有所帮助."