尝试不同的解决方案后现在我有一些关于我的问题的信息:
我已经为My BlogPost Type添加了MediaLibraryPickerField,
我正在为我的博客使用备用布局,其名称为Layout-url-test.cshtml
,我的博客名称正在测试中。
并创建Content-url-test.cshtml
,Fields.MediaLibraryPicker.Summary-url-test.cshtml
,Parts.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文件???
中添加一些代码行答案 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>