0

我已使用以下代码将 MediaLibraryPickerField 添加到迁移中的内容类型:

ContentDefinitionManager.AlterPartDefinition("MyPart",
    builder => builder.WithField("MyImage", 
        fieldBuilder => fieldBuilder.OfType("MediaLibraryPickerField")
                                    .WithDisplayName("My Image")));

这在我的编辑视图中为我提供了一个媒体库选择器控件并按预期工作。

当我在 SummaryAdmin 中显示 MyPart 时,Orchard 尝试使用 Image.SummaryAdmin.cshtml 并在此处出现错误,因为.As<MediaPart>返回 null:

var mediaPart = ((ContentItem)Model.ContentItem).As<MediaPart>();

Model.ContentItem 不是 MediaPart,它是 MyType。它确实有一个附加到 MyType 的 ImagePart。

问题:

  1. 为什么图像形状在寻找 MediaPart
  2. 如何将 MediaPart 作为模型的一部分注入?(我是不是该?)
  3. 我应该在这里创建一个替代视图并深入到正确的部分吗?
  4. 我是否完全错过了如何使用 MediaLibraryPickerField?
4

1 回答 1

1
@{  
     var mediaPart= ((Orchard.MediaLibrary.Fields.MediaLibraryPickerField)Model.Fields.Single(f => f.Name == "MyImage")).MediaParts;
}
于 2013-12-26T14:09:17.460 回答