我在使用Umbraco 6.1.5和uSiteBuilder 3.0.0时遇到了问题,当我使用ContentHelper
实例化强类型DocumentType时,DocumentType中定义的所有字段都被加载到对象中,但像{ {1}},Name
或Id
未加载(它们为空,空或0)。
据我所知,因为负责实例化的Children
方法正在调用ContentHelper
的空构造函数。有什么我想念的吗?我应该在我的文档类型上定义构造函数吗?
这是我的DocumentType:
DynamicNode
以防它有用,这是调用空构造函数的代码部分:
namespace USiteBuilderTest.DocumentTypes
{
[DocumentType]
public class Home : DocumentTypeBase
{
[DocumentTypeProperty(Name = "Field 1")]
public string Field1 { set; get; }
[DocumentTypeProperty(Name = "Field 2")]
public string Field2 { set; get; }
[DocumentTypeProperty(Name = "Field 3")]
public string Field3 { set; get; }
}
}
答案 0 :(得分:0)
尽管Codeplex项目描述清楚地说明分支“3.0.0”应该与Umbraco v6一起使用,但实际上应该使用一个特定的v6分支(标记为“version6API”)。
答案归功于Vladan Ostojic,他在Umbraco论坛上回答了这个问题:
答案 1 :(得分:0)
我也遇到过这个问题。解决方案可以是添加一个空构造函数和一个nodeid作为输入的构造函数。像这样:
namespace USiteBuilderTest.DocumentTypes
{
[DocumentType]
public class Home : DocumentTypeBase
{
public Home() {}
public Home(int nodeId) : base(nodeId) { }
[DocumentTypeProperty(Name = "Field 1")]
public string Field1 { set; get; }
[DocumentTypeProperty(Name = "Field 2")]
public string Field2 { set; get; }
[DocumentTypeProperty(Name = "Field 3")]
public string Field3 { set; get; }
}
}
这对我有用。