Я работаю над сайтом Orchard, который должен иметь возможность использовать некоторые настраиваемые формы для создания новых элементов контента.
Чтобы справиться с этим, я использую контроллер для отображения формы, а затем пытаюсь создать новые элементы контента при отправке обратно, заполняя динамические элементы и затем отправляя их через функцию ContentManagerService Create().
Это работает нормально, пока я не доберусь до поля выбора контента, которое у меня есть как часть моего элемента контента.
В моем проекте у меня есть тип контента «Запись вопроса», который имеет поле «SubmittedBy», которое является полем выбора контента.
Вот что я вижу в ближайшем окне при обработке поста:
> dynamic q = _questionService.NewQuestion("Why doesn't this work?"); {Custom.Website.Models.Question} base {Orchard.ContentManagement.ContentPart}: {Custom.Website.Models.Question} IsNew: true OriginalQuestion: "Why doesn't this work?" Summary: null > q.QuestionRecord {Orchard.ContentManagement.ContentPart} base {System.Dynamic.DynamicObject}: {Orchard.ContentManagement.ContentPart} ContentItem: {Orchard.ContentManagement.ContentItem} Fields: Count = 5 Id: 0 PartDefinition: {Orchard.ContentManagement.MetaData.Models.ContentPartDefinition} Settings: Count = 0 TypeDefinition: {Orchard.ContentManagement.MetaData.Models.ContentTypeDefinition} TypePartDefinition: {Orchard.ContentManagement.MetaData.Models.ContentTypePartDefinition} Zones: {Orchard.UI.ZoneCollection} > q.QuestionRecord.SubmittedBy {Orchard.ContentPicker.Fields.ContentPickerField} base {Orchard.ContentManagement.ContentField}: {Orchard.ContentPicker.Fields.ContentPickerField} ContentItems: null Ids: {int[0]}
Свойство ContentItems доступно только для чтения, а идентификаторы при назначении нового int[] массиву Ids я получаю System.ObjectDisposedException с сообщением: экземпляры не могут быть разрешены, а вложенные времена жизни не могут быть созданы из этого LifetimeScope, поскольку он уже был удален .
Существуют ли какие-либо обходные пути для установки этого значения в коде или мне нужно создать собственное свойство для хранения связанных идентификаторов элементов контента? Было бы очень полезно иметь интерфейс администратора ContentPickerField.
Спасибо.