c# - Umbraco 网站在现有对象上抛出 NullReferenceException
问题描述
我正在为我的网站使用 UmbracoCms 7.12 和LiveAppData
Models Builder。
在后端,我为它们创建了所需的 DocumentTypes(又名模型)和视图/部分视图。
以下部分视图的代码在执行时抛出 NullReferenceException。当我进入调试模式时,对象确实存在并且调用 testimonialItems[0] 返回非空对象。证明在下面的屏幕截图中。TestimonialsSection - 是带有 TestimonialItem 子项的文档类型。在后端,我在他体内创建了 2 个孩子。
下面的代码在var testi = testimonialItems[i];
line 处抛出。即使我评论这一行,它也会开始抛出@header
NullReferenceException。
@inherits UmbracoTemplatePage<TestimonialsSection>
@{
var testimonialItems = this.Model.Content.Children<TestimonialItem>().ToList();
var header = this.Model.Content.Header;
var body = this.Model.Content.Body;
}
@{
<div id="testimonials" class="testimonials-section">
<div class="container">
<h2 class="section-title text-center">@header</h2>
@for (var i = 0; i < testimonialItems.Count; i++)
{
var testi = testimonialItems[i];
<div class="item mx-auto @(i % 2 == 0 ? "" : "item-reversed")">
<div class="profile-holder">
<img class="profile-image" src="@testi.Image.Url" alt="profile">
</div>
<div class="quote-holder">
<blockquote class="quote">
<p>@testi.Body</p>
<div class="quote-source">
<span class="name">@testi.Header</span>
</div>
</blockquote>
</div>
</div>
}
</div>
</div>
}
解决方案
有时调试器没有在正确的位置显示错误。我知道这听起来很疯狂,但对我来说发生了几次。
尝试在循环中注释代码的某些部分以查看哪部分中断。
也许testi.Image.Url
是空的,它会破坏你的页面。如果您没有指定任何图像,它可能为空。
推荐阅读
- javascript - 您可以在 ionic Android 和 iOS 应用程序中使用 webRTC 吗?
- python-3.x - Pytesseract 混淆了零('0')和大写 O('O')
- facebook - Facebook 广告和谷歌标签管理器
- c - C 在结构中丢失数据
- docker - 我想在我的 Linux Rhel 机器上离线安装 docker。我的机器没有网络连接
- python - Tkinter 图像未显示在正确的页面上
- python - 如何动态地将值添加到嵌套字典?
- json - Azure 数据工厂:将 XML 数据转换为 JSON
- matlab - MATLAB R2019a 不会显示原始线条的图例
- reactjs - 在 React 中创建汉堡菜单