以编程方式将数据添加到umbraco节点

时间:2013-02-20 06:54:55

标签: asp.net umbraco

我需要为我的umbraco节点添加一些值。 我曾尝试过这样的事情

Node node = Node.GetCurrent();
node.GetProperty("pass_word").Value = password.ToString()

但它会引发错误,只读它。任何人都可以提出任何建议吗?

2 个答案:

答案 0 :(得分:3)

Umbraco将节点的属性缓存在名为umbraco.config的xml文件中。当您使用NodeFactory访问节点的属性时,它将从缓存中拉出,因此只读。

要实际编辑数据库中找到的数据,然后将其发布到缓存,您需要使用Document类。有关详细信息,请参阅Difference between Node and Document

以下是一个例子:

int id = Node.GetCurrent().Id;
Document node = new Document(id);
node.getProperty("pass_word").Value = password.ToString();
node.Publish(new User(0));
umbraco.library.UpdateDocumentCache(id);

答案 1 :(得分:2)

在Umbraco中,节点和文档之间存在差异。通过nodeFactory从XML文件umbraco.config中读取节点,该节点用于以最快的方式从内容中检索和显示数据。

修改节点是不可能的,没有任何意义,因为Umbraco.config文件中的XML是在每次从数据库内的Document数据发布后生成的。

如果需要修改数据库中的数据,则必须使用文档类型。 有关节点和文档之间的区别,请参阅this article