Umbraco 7 有媒体 属性 值

Umbraco 7 get media property value

我是 Umbraco 7 和 MVC 的新手。我在媒体文件类型中添加了一个名为 'teaser' 的 属性。当我上传一个媒体文件时,后台界面识别出新的 属性 并允许我设置它的值。 但是,我无法弄清楚如何访问该值以在界面中使用。这是代码:

@if (CurrentPage.HasValue("audioFiles")) {
var audioIdList = CurrentPage.audioFiles.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var audioList = Umbraco.TypedMedia(audioIdList);
<ul class="audioFileList"> @{
foreach (var af in audioList) {
        <li>
            <a href="@af.Url">@af.Name</a><br />
            @af.teaser;
        </li>
    }
}
</ul>

}

当我 运行 这段代码时,它会抛出一个错误,指出“'Umbraco.Web.Models.PublishedContentBase' 不包含 'teaser' 的定义”。 Url 和名称检索得很好。只有添加的 'teaser' 才是问题所在。 谢谢 - 乔恩

试试这个:

 @af.GetPropertyValue("teaser")

如果您使用动态 "CurrentPage" 对象,则只能使用 af.teaser。在这种情况下,您继承自 TypedList,它为您提供强类型的 .Net 对象。这些不包含您的自定义属性。

如果你更喜欢动态,你应该把var audioList = Umbraco.TypedMedia(audioIdList);换成var audioList = Umbraco.Media(audioIdList);。这将为您提供一个动态对象。