c# - 为什么 MVC 会在看似没有 Null Reference 的情况下抛出 NullReferenceException?

标签 c# asp.net-mvc asp.net-mvc-4

我有一个 MVC View 在以下代码中抛出 NullReferenceException:

<div class="center-block text-center mb15">
    Showing @count of @Model.TotalItemCount results
</div>

因此,我认为错误是 Model 为空。但是,代码已经通过在同一 View 中较早出现的以下代码完成:

@{
    long count = Model.Count();
}

单步执行代码显示 count 是(在本例中)6,Model.TotalItemCount 也是 6,因此没有空引用。

但它仍然抛出异常!

这是奇怪的一点,这对我来说毫无意义,但却是问题的症结所在。抛出异常时,我在 Visual Studio 中得到以下信息:

enter image description here

这似乎表明正在调试的 View 与编辑器中显示的 View 不同,但是

  • 我删除了 binobj 文件夹并重建了应用程序,没有任何变化,并且
  • 此 View 已经几个月没有更改,并且可以与其他 Controller 操作一起使用(它是一个Shared View )。

在调试器中单步执行此行之前的 View ,每一行都正确突出显示(黄色条贯穿所有文本)。

最佳答案

答案是看起来更宽一点。虽然错误被标记为 Visual Studio 中所示,并且异常表明它是由指示的行号抛出的,但该异常实际上是由于大约 5 行之后的空引用(中间的行都是 HTML),其中访问了一个属性对于一个实际上为 null 的值。

不幸的是,经过这么长时间,Razor View 调试还没有达到应有的成熟度。感谢所有评论者的意见。

关于c# - 为什么 MVC 会在看似没有 Null Reference 的情况下抛出 NullReferenceException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400557/

相关文章:

c# - 如何获取Azure应用服务资源中的文件路径?

c# - Unity3d 上 ScriptableObject 的自定义图标

javascript - 如何使用 javascript 和 mvc 将 Canvas 上传到项目的文件夹

asp.net-mvc-4 - 如何为 Outlook 创建 "internet calendar subscription"?

asp.net-mvc - 使用 Razor 引擎在mvc4中重写url

c# - 重 I/O 操作中的 Parallel.ForEach 与异步 For 循环

c# - 在 .net winform 中创建圆角容器

c# - asp.net mvc 如何将 View 与 Controller 操作相关联?

asp.net-mvc - 将 Visual Studio MVC 项目的页面标记为 "async = true"

c# - ASP.NET MVC 模型与动态 View 模型绑定(bind)