我在这里遗漏了一些东西,但在我的生活中无法弄清楚是什么。
我已将MediaLibraryPickerField添加到我创建的部分:
ContentDefinitionManager.AlterPartDefinition(typeof (FloorPlanPart).Name, cfg => cfg
.WithField("Photo", f => f
.OfType("MediaLibraryPickerField")
.WithDisplayName("Photo")
.WithSetting("MediaLibraryPickerFieldSettings.Required", "true")));
我可以验证此字段已正确添加到我的部分。此部分属于自定义类型:
ContentDefinitionManager.AlterTypeDefinition("FloorPlan", cfg => cfg
.WithPart(typeof(FloorPlanPart).Name)
.Creatable()
.Draftable(false));
我的驱动程序设置在编辑时返回以下内容:
protected override DriverResult Editor(FloorPlanPart part, dynamic shapeHelper)
{
return ContentShape("Parts_FloorPlan_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/FloorPlan",
Model: part,
Prefix: Prefix));
}
我的编辑视图如下所示:
@using System.Web.Mvc.Html
@model Models.FloorPlanPart
<fieldset>
<legend>Floor Plan Fields</legend>
<div class="editor-label">@Html.LabelFor(x => x.FloorPlanName)</div>
<div class="editor-field">
@Html.EditorFor(x => x.FloorPlanName)
@Html.ValidationMessageFor(x => x.FloorPlanName)
</div>
</fieldset>
媒体选择器应该出现在线上的某些位置,但在创建新的平面图时永远不会出现。我得到的只是我的部分字段(FloorPlanName)。如何显示媒体选择器?如果我将媒体选择器添加为我的内容类型的字段,它确实显示但我不应该这样做吗?
答案 0 :(得分:0)
Rookie错误,我以为我使用的是Orchard 1.7.2的最新版本,但是使用的是1.6.2。