首页 > 解决方案 > Umbraco 网站在现有对象上抛出 NullReferenceException

问题描述

我正在为我的网站使用 UmbracoCms 7.12 和LiveAppDataModels Builder。

在后端,我为它们创建了所需的 DocumentTypes(又名模型)和视图/部分视图。

以下部分视图的代码在执行时抛出 NullReferenceException。当我进入调试模式时,对象确实存在并且调用 testimonialItems[0] 返回非空对象。证明在下面的屏幕截图中。TestimonialsSection - 是带有 TestimonialItem 子项的文档类型。在后端,我在他体内创建了 2 个孩子。

下面的代码在var testi = testimonialItems[i];line 处抛出。即使我评论这一行,它也会开始抛出@headerNullReferenceException。

@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>
}

在此处输入图像描述 在此处输入图像描述

标签: c#razorumbraco

解决方案


有时调试器没有在正确的位置显示错误。我知道这听起来很疯狂,但对我来说发生了几次。

尝试在循环中注释代码的某些部分以查看哪部分中断。

也许testi.Image.Url是空的,它会破坏你的页面。如果您没有指定任何图像,它可能为空。


推荐阅读