Umbraco:使用 C# 在内容中创建子节点

本文关键字:创建 子节点 使用 Umbraco | 更新日期: 2023-09-27 18:36:41

我正在使用 umbraco 6.1.6。我想知道如何以编程方式将节点添加到内容树中?

这是我想要的结构:

内容

    • 开始
    • 日历
    • 首页滑块
    • 照片
    • 新闻

这里的子节点具有相同的文档类型。如何使用 C# 以编程方式创建这些子节点?

Umbraco:使用 C# 在内容中创建子节点

试试这个,

using umbraco.cms.businesslogic.web;
DocumentType dt = DocumentType.GetByAlias("alias");
// The umbraco user that should create the document, 
// 0 is the umbraco system user, and always exists
umbraco.BusinessLogic.User u = new umbraco.BusinessLogic.User(0);
//Replace 1055 with id of parent node
Document doc = Document.MakeNew("new child node name", dt, u, 1055);
//after creating the document, prepare it for publishing 
doc.Publish(u);
//Tell umbraco to publish the document
umbraco.library.UpdateDocumentCache(doc.Id);

using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
// Get the Umbraco Content Service
var contentService = Services.ContentService;
var product = contentService.CreateContent(
    "my new presentation", // the name of the product
    1055, // the parent id should be the id of the group node 
    "Presentation", // the alias of the product Document Type
    0);
// We need to update properties (product id, original name and the price)
product.SetValue("title", "My new presentation");
// finally we need to save and publish it (which also saves the product!)
// - that's done via the Content Service
contentService.SaveAndPublish(product);

希望这有帮助

为此,您需要使用 Umbraco 的 API。这在 Umbraco 文档中都有介绍:http://our.umbraco.org/documentation/Reference/

简而言之,您可以使用 API ApplicationContext.Current.Services.ContentServiceCreateContent()方法。