次のコードを使用して、移行のコンテンツ タイプに 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 があります。
質問:
- Image シェイプが MediaPart を探しているのはなぜですか
- MediaPart をモデルの一部として挿入するにはどうすればよいですか? (するべきか?)
- ここで別のビューを作成し、正しい部分にドリルダウンする必要がありますか?
- MediaLibraryPickerField の使用方法が完全に欠落していますか?