3

我在这里遗漏了一些东西,我一生都无法弄清楚是什么。

我已将 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)。如何让媒体选择器显示?如果我将媒体选择器添加为我的内容类型上的一个字段,它会显示,但我不应该也可以这样做吗?

4

1 回答 1

0

菜鸟的错误,我以为我用的是最新版的Orchard 1.7.2,结果用的是1.6.2。

于 2014-01-07T22:00:31.867 回答