私の質問はquestion/10369967/orchard-cms-how-to-add-media-picker-field-to-anew-moduleと似ています
選択リスト、テキスト ボックス、および... メディア ピッカー フィールドを含む新しいコンテンツ パーツを作成しました。
これをコンテンツ部分に追加し、Bertrand Le Roy の提案:
ContentDefinitionManager.AlterPartDefinition("Product",
builder => builder.WithField("ProductImage",
fieldBuilder => fieldBuilder
.OfType("MediaPickerField")
.WithDisplayName("Product Image")));
ただし、カスタム エディター ビューでこれを表示する方法がわかりません
@Display(Model.ProductImage) のような簡単なものがあるはずですが、Orchard docsのコンテンツ パーツの作成に従っていますが、エディター ビューのモデルは動的ではありません。
@Display(Model.ProductImage) などの魔法が存在する場合、メディア ピッカー アイテムをビュー モデルに追加するにはどうすればよいでしょうか。
アップデート
メディア ピッカー フィールドは、このパーツを追加したコンテンツ タイプに表示されているようですが、必要な場所ではありません! 選択リストから選択された値に基づいてこのフィールドを表示/非表示にしたいのですが、フィールド コンテンツ アイテムのデフォルトのレンダリングを停止し、カスタム ビューでレンダリングするにはどうすればよいですか?
更新 2
これをモデルに追加しました
public MediaPickerField MediaPicker
{
get{ return (MediaPickerField)((dynamic)ContentItem).HeaderPart.Image;}
}
これをビューに
@Html.Partial("EditorTemplates/Fields/MediaPicker.Edit", Model.MediaPicker)
これがplacement.infoです
<!-- MediaPicker -->
<Place Fields_MediaPicker_Edit="-"/>
これで、cms エンドを介した編集が正しく表示されます...しかし、画像がデータベースに保存されていないようです!