Orchardcms 如何在AdminUI之外的内容选择器中设置项目?

Orchardcms 如何在AdminUI之外的内容选择器中设置项目?,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,我有ContentTypeA和ContentPickerA字段。我还有ContentTypeB和其他字段等。这些字段是在Migrations.cs文件中创建的,该文件是我模块中当前唯一的代码(以下工作流活动除外)。所以,没有零件、驱动器等 我正在创建一个Worfklow,在用户注册后,该Worfklow将创建ContentItem1关闭ContentTypeA,以及ContentItem2关闭ContentTypeB 我想自动链接内容项,这样我就可以用ContentItem2填写ContentP

我有
ContentTypeA
ContentPickerA
字段。我还有
ContentTypeB
和其他字段等。这些字段是在
Migrations.cs
文件中创建的,该文件是我模块中当前唯一的代码(以下工作流活动除外)。所以,没有零件、驱动器等

我正在创建一个Worfklow,在用户注册后,该Worfklow将创建
ContentItem1
关闭
ContentTypeA
,以及
ContentItem2
关闭
ContentTypeB

我想自动链接内容项,这样我就可以用
ContentItem2
填写
ContentPickerA
。要点是避免进入AdminUI手动链接这些项目

我已经搜索了很多,但没有找到任何具体的例子,更不用说让我走上正轨的任何东西了


非常感谢您的帮助。

在Activities类的
Execute
中,我能够使用以下代码实现此功能:

public override IEnumerable<LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext)
    {
        LocalizedString outcome = null;

        try
        {
            //VARIABLES: DATA
            var mainTitle = "Test Content Title From Workflow Activity";
            var matterTitle = "Matter Type Title From Workflow Activity";

            //VARIABLES: NEW CONTENT ITEMS 
            var spacesMain = _contentManager.New("TestContentType");
            var spacesMatter = _contentManager.New("MatterType");

            //BIND DATA
            spacesMain.As<TitlePart>().Title = mainTitle;
            spacesMatter.As<TitlePart>().Title = matterTitle;

            //CREATE DRAFT CONTENT ITEMS
            _contentManager.Create(spacesMain, VersionOptions.Published);
            _contentManager.Create(spacesMatter, VersionOptions.Published);

            //SET CONTENT PICKER
            var contentPickerTest1 = ((dynamic)spacesMain).TestContentType.ContentPickerTest1;
            contentPickerTest1.Ids = new[] { spacesMatter.Id };

            outcome = T("Done");
        }
        catch (Exception exc)
        {
            workflowContext.SetState("Exception", exc);

            outcome = T("Error");
        }

        yield return outcome;

    }
public override IEnumerable Execute(WorkflowContext WorkflowContext,ActivityContext ActivityContext)
{
LocalizedString结果=null;
尝试
{
//变量:数据
var mainttitle=“工作流活动中的测试内容标题”;
var matterTitle=“来自工作流活动的事项类型标题”;
//变量:新内容项
var spacesMain=_contentManager.New(“TestContentType”);
var spacesMatter=_contentManager.New(“MatterType”);
//绑定数据
spacesMain.As().Title=mainttitle;
spacesMatter.As().Title=matterTitle;
//创建草稿内容项
_创建(spacesMain,VersionOptions.Published);
_创建(spacesMatter,VersionOptions.Published);
//设置内容选择器
var contentPickerTest1=((动态)spacesMain).TestContentType.contentPickerTest1;
contentPickerTest1.Ids=new[]{spacesMatter.Id};
结果=T(“完成”);
}
捕获(异常exc)
{
workflowContext.SetState(“异常”,exc);
结果=T(“错误”);
}
收益结果;
}
希望这对其他人有所帮助,因为作为一名非程序员,我很高兴终于看到AdminUI中的内容项将ContentPickerField设置为我创建的其他内容项