0

我有一个通过管理 GUI 创建的注册内容类型。它只有一个 id 和一个公共部分以及一些文本字段。我可以做类似的事情:

var registration = services.ContentManager.New("Registration"); 
registration.Name = "My Name";
registration.Comment = "Some random comment";
services.ContentManager.Create(registration, VersionOptions.Published);

还是我必须经历在代码中完全定义我的内容类型并手动处理持久性的考验?我可以在网上找到的所有教程以及官方文档都只涉及从头开始创建内容类型和项目。似乎没有简单地创建现有类型的新项目的示例。

4

1 回答 1

2

你可以这样做就好了。但是,如果您想设置更多设置,则应将其强制转换为动态,以便您可以简单地将任何值放在那里:

dynamic registration = services.ContentManager.New("Registration");

// It is dynamic, so you can now set any property on it:
// <contentItem>.<theContentPart>.<thePropertyName> = someValue
// <contentItem>.<theContentPart>.<theField>.Value = someValue

// Set properties of a part
registration.ThePartThatHasTheNameProperty.Name = "My Name";
registration.ThePartThatHasTheCommentProperty.Comment = "Some random comment";

// Set properties of a field
registration.ThePartThatHasTheField.TheField.Value = "Some value";

services.ContentManager.Create(registration, VersionOptions.Published);

或者,强类型:

var registration = services.ContentManager.New("Registration");

registration.As<SomePart>().SomeProperty = "Some value";
registration.As<SomeOtherPart>().SomeOtherProperty = "Some other value";
于 2015-10-09T09:44:35.677 回答