0

別の解決策を試した後、私は自分の問題についていくつかの情報を持っていました:私はすでに My BlogPost Type に MediaLibraryPickerField を追加しましたLayout-url-test.cshtml。私のブログの名前は test です。また、レイアウトは問題なくContent-url-test.cshtml、画像付きのブログ投稿にはメディアが表示されますが、代替ファイルを追加すると、ブログ投稿リストとブログ投稿詳細に画像が表示されません! 代替ファイルに問題があることに気付きましたが、問題を完全に解決するものは何も見つかりませんでした!!!Fields.MediaLibraryPicker.Summary-url-test.cshtmlParts.Blogs.BlogPost.List-url-test.cshtmlParts.Blogs.BlogPost.List-url-test.cshtml

 var list = Model.ContentItems;
 var items = list.Items;
 var body = "";
 string name = string.Empty;
foreach(var post in items)
{

var blogPost = post.ContentItem;

 body = post.ContentItem.BodyPart.Text;

var field =(MediaLibraryPickerField) post.ContentField;
     name  =  field.DisplayName;

}

bodypart のテキストを取得できましたが、フィールドは常に null です !!!

テーマのplacement.infoファイルにいくつかのコード行を追加する必要がありますか???

4

1 に答える 1

0

ブログ投稿に MediaLibraryPickerField を追加しようとする場合、Fields.MediaLibraryPicker などの他のビューをオーバーライドする必要はありません。オーバーライドが必要です。

Content-BlogPost.Detail.cshtml

Parts.Blogs.BlogPost.List.cshtml

しかし、BlogPost.List のすべての投稿を一覧表示するには、コンテンツをループして、このように ImageField を選択するだけです

 @foreach (var item in Model.ContentItems)
{

var mediaPart = ((Orchard.MediaLibrary.Fields.MediaLibraryPickerField)
item.ContentItem.BlogPost.[FieldName]).MediaParts.FirstOrDefault();

  ////////your mark up goes here 

<img src="@mediaPart.MediaUrl" alt="@mediaPart.Caption"/>
...
...

}

あなたの配置:

 <Match ContentType="BlogPost">
    <!--<Match DisplayType="Summary">-->
     <Place Fields_MediaLibraryPicker="-"/>
     <Place Parts_Common_Body_Summary="Summary:0"
            Parts_Common_Body="Body:0"
            Parts_Tags_ShowTags="Tags:0"
            Parts_Common_Metadata_Summary="MetadataSummary:0"
            Parts_ListOfComments="Comment:0" 
            Parts_Comments_Count="CommentsCount:0" 
            Parts_CommentForm= "CommentForm:0"/>
    <!--</Match>-->


<!--<Match DisplayType="Detail">
      <Place Parts_Tags_ShowTags="Content:before.1"/>
      <Place Parts_Common_Metadata="Content:before.2"/>
      <Place Parts_Comments="Content:after.3"/>
    </Match>--> 


  </Match>

      </Match>
于 2015-06-15T08:09:04.170 に答える