发生了类型为“System.NullReferenceException”的异常,出现在App_Web_***.dll中。

6

这是我的代码

@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循环的开始设置了断点。我能看到article不是空值,并且它有标题和正文。但是当我到达article.Body并按下F10(单步调试)时,它突然变成了null!
"System.NullReferenceException"异常出现在"App_Web_ayg111kp.dll"中,但未在用户代码中处理。
当我完成调试时,黄色屏幕向我展示了这条消息:"Object reference not set to an instance of an object"。
请问有人能解释一下这个问题吗?我使用的是.NET 4.5.2和MVC 5.2。

请问您能否将整个堆栈跟踪信息发布出来吗? - Swati
什么是“NullReferenceException”,我该如何修复它? - JG in SD
1个回答

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>

尝试注释掉“@article.SomethinElse”,看看是否能清除错误。

来自链接: “有时编译器无法指出在Razor视图中具有特定类型错误的准确行,可能是因为它无法将其行号保留在堆栈跟踪或其他地方。我发现这种情况会出现空引用异常和在Url.Content中传递null的情况。

所以当您在堆栈跟踪显示的行没有任何错误时,检查下一个Razor视图中的C#语句会很有帮助。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接