我正在开发一个需要能够使用一些自定义表单来创建新内容项的 Orchard 站点。
为了处理这个问题,我使用一个控制器来显示一个表单,然后尝试通过填充动态项目然后通过 ContentManagerService 的 Create() 函数发送它们来在回发时创建新的内容项目。
这一切正常,直到我到达作为内容项一部分的内容选择器字段。
在我的项目中,我有一个问题记录的内容类型,它有一个 SubmittedBy 字段,它是一个内容选择器字段。
这是我在处理回帖时在即时窗口中可以看到的内容:
> dynamic q = _questionService.NewQuestion("为什么这不起作用?");
{Custom.Website.Models.Question}
基础 {Orchard.ContentManagement.ContentPart}:{Custom.Website.Models.Question}
是新的:真
原始问题:“为什么这不起作用?”
摘要:空
> q.问题记录
{果园.内容管理.内容部分}
基础 {System.Dynamic.DynamicObject}:{Orchard.ContentManagement.ContentPart}
内容项:{Orchard.ContentManagement.ContentItem}
字段:计数 = 5
编号:0
PartDefinition:{Orchard.ContentManagement.MetaData.Models.ContentPartDefinition}
设置:计数 = 0
类型定义:{Orchard.ContentManagement.MetaData.Models.ContentTypeDefinition}
TypePartDefinition:{Orchard.ContentManagement.MetaData.Models.ContentTypePartDefinition}
区域:{Orchard.UI.ZoneCollection}
> q.QuestionRecord.SubmittedBy
{Orchard.ContentPicker.Fields.ContentPickerField}
基础 {Orchard.ContentManagement.ContentField}:{Orchard.ContentPicker.Fields.ContentPickerField}
内容项:空
标识:{int[0]}
ContentItems 属性是只读的,在将新的 int[] 分配给 Ids 数组时的 Ids 我收到 System.ObjectDisposedException 消息:无法解析实例,并且无法从此 LifetimeScope 创建嵌套生命周期,因为它已经被释放.
是否有任何解决方法可以在代码中设置此值,或者我是否需要创建自己的属性来存储相关的内容项 ID?让 ContentPickerField 的管理界面也可用会非常有帮助。
谢谢。