Сайт Umbraco создает исключение NullReferenceException для существующих объектов. - PullRequest
0 голосов
/ 08 октября 2018

Я использую UmbracoCms 7.12 для своего веб-сайта с LiveAppData Models Builder.

В бэкэнде я создал необходимые DocumentTypes (aka Models) и Views / Partial Views для них.

Следующий код частичного просмотра генерирует исключение NullReferenceException при выполнении.Когда я перехожу в режим отладки, объекты действительно существуют, и вызов testimonialItems [0] возвращает ненулевой объект.Доказательства в скриншотах ниже.TestimonialsSection - это тип документа с дочерними элементами TestimonialItem.В бэкэнде я создал 2 детей внутри него.

Следующий код выдает строку var testi = testimonialItems[i];.Даже если я прокомментирую эту строку, она начнет выдавать @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>
}

enter image description here enter image description here

1 Ответ

0 голосов
/ 12 октября 2018

Иногда отладчик не показывает ошибку в нужном месте.Я знаю, это звучит странно, но это случилось несколько раз для меня.

Попробуйте прокомментировать некоторые части вашего кода внутри цикла, чтобы увидеть, какая часть обрывается.

Может быть, testi.Image.Url равно нулю иэто ломает вашу страницу.Если вы не указали ни одного изображения, оно, скорее всего, будет нулевым.

...