这是我的代码
@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
答案 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;