对于许多创建的自定义类型,我们都有查询。 Projection Widgets(在区域内)正在使用这些查询。
很少有自定义类型具有“媒体选择器”字段。我用于查询的布局类型是Shape类型,如下所示:
=>>>布局:
。我已按照from here.步骤进行操作。我将形状的名称指定为:UpcomingHighlightsImages
,如下所示:
然后在我的UpcomingHighlightsImages.cshtml
文件夹中包含了Themes/MyFirstTheme/Views
视图。
这里的一切都很好。
在View中,问题是没有办法读取图像元数据,如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>
}
所以,正如上面的代码和标签所示,我需要:
LinkUrl
和ImagePath
请指导我!
答案 0 :(得分:0)
了解如何在ImagePath
表达式中获得第一个媒体部分?那么,您可以从中获取该部分并从中获取Title
,Caption
,AlternateText
等。您也可以As<ImagePart>()
获取Width
和Height
。