8.0.1晔SP1
我使用SmartForms和内容类型阅读(希望写)数据。 我可以读取数据,但我现在在尝试写类似如下的新纪录。
ContentTypeManager<member> contentTypeManager = new ContentTypeManager<member>();
ContentType<member> newmem = new ContentType<member>();
newmem.SmartForm.details.field1 = "Chuck"; // This line throws 'Object reference not set to an instance of an object.' error
newmem.SmartForm.details.field2 = "Norris";
contentTypeManager.Update(newmem);
我得到的错误“对象引用不设置到对象的实例。” 对于第一项任务线。 我在想什么?
我有麻烦,现在该网站晔进行了重新设计上寻找好的CONTENTTYPES文档8.0.1。
谢谢。
感谢澄清,将内容添加到已分配给它的智能表的文件夹,基本代码块应该让你开始(注:内容的HTML属性仅仅是匹配到您创建的模式的XML)
Ektron.Cms.Framework.Content.ContentManager cmanager = new Cms.Framework.Content.ContentManager();
Ektron.Cms.ContentData cdata = new ContentData();
cdata.FolderId = 0;
cdata.XmlConfiguration.Id = 0; //SMARTFORM ID HERE
cdata.Html = "<root><field1>field1 value</field1><field2>field2 value</field2></root>";
cmanager.Add(cdata);
你可以更新ContentTypes.cs包括一个Add方法。 刚才复制的更新方法,改变contentManager.Update
到contentManager.Add
。
public void Add(ContentType<T> contentType)
{
Initialize();
contentType.Content.Html = Ektron.Cms.EkXml.Serialize(typeof(T), contentType.SmartForm);
contentManager.Add(contentType.Content);
}
不幸的是, contentManager.Add
返回void
。 理想的情况下,它应该返回新的内容ID。