获取子项的图像 ID

Get Image ID of Child Item

我正在尝试获取子项目图像的 ID 属性,以便我可以使用 Umbraco.Media() 来显示图像。

我正在尝试通过使用强类型模型来使用最佳实践,我认为我在这里正确地调用了强类型模型。

为什么以下代码在 'var imageId = location.LocationImage.Id;' 行返回 'Object reference not set to an instance of an object' 错误?

谢谢。

@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 中的实现是:

/// 位置图片 [全局::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder", "8.0.4")] [实现属性类型("locationImage")] public 图片位置图片 => this.Value("locationImage");

这已在 Umbraco 论坛上解决,所以我将 post 答案放在这里。

使用 Umbraco 强类型模型,您可以将内联值传递给 html 标记,例如:

<img src="@location.LocationImage.Url"/>

不必将其传递给服务。