0

对于创建的许多自定义类型,我们为它们提供了一个查询。Projection Widgets (Within Zones) 正在使用这些查询。

很少有自定义类型具有 Media Picker 字段。我用于查询的布局类型是 Shape 类型,如下所示:

=>>> 查询: 在此处输入图像描述

=>>> 布局: 在此处输入图像描述。我已按照此处的步骤进行操作。. 我将形状的名称指定为:UpcomingHighlightsImages如下所示:

在此处输入图像描述

然后包含视图:UpcomingHighlightsImages.cshtml在我的Themes/MyFirstTheme/Views文件夹中。

到这里为止一切正常。

在视图中,问题是没有办法读取图像元数据,如 altText、altHeight 等......似乎也没有办法首先在 Orchard 本身中设置这些元数据。

@using Orchard.ContentManagement
@using Orchard.Core.Title.Models
@using Orchard.Fields.Fields
@using Orchard.Taxonomies.Fields
@using Orchard.Core.Common.Fields;
@using Orchard.MediaLibrary.Fields;

@{
    var HighlightItems = ((IEnumerable<ContentItem>)Model.ContentItems).ToList(); 
}

@foreach (var item in HighlightItems) 
    {
        String LinkUrl = ((TextField)item.Parts.SelectMany(x => x.Fields).Single(x => x.Name == "LinkURL")).Value;
        String ImagePath = ((MediaLibraryPickerField)item.Parts.SelectMany(x => x.Fields).Single(x => x.Name == "MainImage")).MediaParts.First().MediaUrl;
        <div>
            <a target="_blank" href="@LinkUrl">
                <img src="@ImagePath"  />
            </a>
        </div>
    }

因此,如上面的代码和标签所示,我需要:

  • 在 ORchard CMS 中设置 Image 的 altText、altHeight 属性
  • 在我看来阅读这些,我阅读的方式LinkUrlImagePath

请指导我!

4

1 回答 1

0

看看你是如何在那个ImagePath表达中获得第一个媒体部分的?好吧,那么您可以参与该部分并从中获取Title, Caption,AlternateText等。你也可以As<ImagePart>()得到它的Widthand Height

于 2015-10-15T21:12:50.127 回答