Orchardcms Orchard CMS使用Migrations.cs中定义的MediaPickerField
MediaPickerFields仍然没有找到我 我在Migrations.cs中定义了一个新部件,并在部件中添加了Orchardcms Orchard CMS使用Migrations.cs中定义的MediaPickerField,orchardcms,Orchardcms,MediaPickerFields仍然没有找到我 我在Migrations.cs中定义了一个新部件,并在部件中添加了Boolean列和MediaPickerField,如下所示: SchemaBuilder.CreateTable("ImageContentPartRecord", table => table.ContentPartRecord() .Column("DisplayImage", DbType.Boolean)); Con
Boolean
列和MediaPickerField
,如下所示:
SchemaBuilder.CreateTable("ImageContentPartRecord", table =>
table.ContentPartRecord()
.Column("DisplayImage", DbType.Boolean));
ContentDefinitionManager.AlterPartDefinition("ImageContentPart", builder =>
builder
.Attachable()
.WithField("ImageField", fld =>
fld.OfType("MediaPickerField")
.WithDisplayName("Image")));
假设我有ImageContentPart
和ImageContentPartRecord
类,我如何从驱动程序和零件模板(编辑/显示)中的MediaPickerField(url、尺寸、alt文本、类等)检索数据
i、 e.-Parts.ImageContent.cshtml(我想实现如下目标):
有什么想法吗?以下是解决方案:
在我的显示驱动程序方法中,我确保在构建ContentShape
时传递我的ImageContentPart
(part
):
return ContentShape("Parts_ImageContent", () =>
shapeHelper.Parts_ImageContent(
Content: part));
然后在我的模板视图中,我利用Orchard架构的动态特性来使用我的MediaPickerField
。为此,您可以访问零件上的.ContentItem
属性,然后依靠动力学,将零件名称(.ImageContentPart
)和字段名称(.ImageContent
)链接起来以访问字段
@{
// Attempting to access MediaPickerField named 'ImageContent'
var image = Model.Content.ContentItem.ImageContentPart.ImageContent;
// Leaning on Orchard dynamics to access properties of the field
var url = image.Url;
}
<img src="@url" alt="@T(image.AlternateText)" />
希望,如果您遇到类似的问题,这将有所帮助 经过一番挖掘,我找到了解决办法。我很快就会寄出去的。
@{
// Attempting to access MediaPickerField named 'ImageContent'
var image = Model.Content.ContentItem.ImageContentPart.ImageContent;
// Leaning on Orchard dynamics to access properties of the field
var url = image.Url;
}
<img src="@url" alt="@T(image.AlternateText)" />
@*
Alternate Text: @Model.ContentField.AlternateText
Class: @Model.ContentField.Class
Style: @Model.ContentField.Style
Alignment: @Model.ContentField.Alignment
Width: @Model.ContentField.Width
Height: @Model.ContentField.Height
Url: @Model.ContentField.Url
You can also display an image using this example, and add the attributes you need:
<img src="@Href(Model.ContentField.Url)" />
*@