2

私の質問は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 エンドを介した編集が正しく表示されます...しかし、画像がデータベースに保存されていないようです!

4

1 に答える 1

3

次のようなものでなければなりません@Model.ContentItem.Product.ProductImage.Url

于 2012-09-12T16:12:11.650 に答える