Я пытаюсь получить идентификатор свойства изображения дочернего элемента, чтобы я мог использовать Umbraco.Media () для отображения изображения.
Я пытаюсь использовать передовой опыт, используя строго типизированные модели, и я думаю Я правильно назвал строго типизированные модели здесь.
Почему следующий код возвращает ошибку «Ссылка на объект не установлена для экземпляра объекта» в «var imageId = location.LocationImage.Id;» линия
Спасибо.
@inherits Umbraco.Web.Mvc.UmbracoViewPage<ContentModels.Locations>
@using ContentModels = Umbraco.Web.PublishedModels;
@{
Layout = "master.cshtml";
var locations = Model.Children<Location>();
}
@foreach (var location in locations)
{
<p>@location.LocationName</p> //this returns a string as expected
var imageId = location.LocationImage.Id; //this throws the error
var image = Umbraco.Media(imageId);
<img src="@image"/>
}
Для информации, я включил AppData ModelsMode и перестроил модели. Реализация в моем Location.generated.cs:
/// Местоположение изображения
[global :: System.CodeDom.Compiler.GeneratedCodeAttribute ("Umbraco.ModelsBuilder", "8.0.4")]
[ImplementPropertyType ( "locationImage")]
public Image LocationImage => this.Value ("locationImage");