我需要为我的 umbraco 节点添加一些价值。我曾尝试过这样的事情
Node node = Node.GetCurrent();
node.GetProperty("pass_word").Value = password.ToString()
但是它会引发错误,它是只读的。任何人都可以提出任何建议吗?
Umbraco 将节点的属性缓存在一个名为 umbraco.config 的 xml 文件中。当您使用 NodeFactory 访问节点的属性时,它是从缓存中提取的,因此是只读的。
要实际编辑在数据库中找到的数据,然后将其发布到缓存中,您需要使用 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);
在 Umbraco 中,节点和文档之间存在差异。节点通过 nodeFactory 从 XML 文件 umbraco.config 中读取,用于以最快的方式从您的内容中检索和显示数据。
修改节点是不可能的,也没有意义,因为 Umbraco.config 文件中的 XML 是在每次发布后从数据库中的文档数据生成的。
如果您需要修改数据库中的数据,则必须使用文档类型。有关节点和文档之间的区别,请参阅这篇文章