使用orchard cms中的博客文章的替换和medialibraryfield时,不显示图像

时间:2015-06-09 05:45:28

标签: orchardcms orchardcms-1.8 alternate

尝试不同的解决方案后现在我有一些关于我的问题的信息: 我已经为My BlogPost Type添加了MediaLibraryPickerField, 我正在为我的博客使用备用布局,其名称为Layout-url-test.cshtml,我的博客名称正在测试中。 并创建Content-url-test.cshtmlFields.MediaLibraryPicker.Summary-url-test.cshtmlParts.Blogs.BlogPost.List-url-test.cshtml, 布局没问题,我的博客文章显示媒体,但是当我添加备用文件Parts.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文件???

中添加一些代码行

1 个答案:

答案 0 :(得分:0)

如果您尝试为博客帖子添加MediaLibraryPickerField,则无需覆盖其他视图,例如Fields.MediaLibraryPicker等。 你需要的是覆盖:

内容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>