我需要为我的umbraco节点添加一些值。 我曾尝试过这样的事情
Node node = Node.GetCurrent();
node.GetProperty("pass_word").Value = password.ToString()
但它会引发错误,只读它。任何人都可以提出任何建议吗?
答案 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