Umbraco - 如何在代码中访问内容蓝图(模板)

Umbraco - How do I access a Content Blueprint (template) in code

所以我知道我可以使用以下代码获取内容节点:

Node contentNode = new Node(contentId);

我想以类似的方式从我的代码中访问内容蓝图,我该怎么做?

内容模板只是 .cshtml 查看磁盘上的文件。您可以使用 Umbraco API 中的 FileService 获取模板视图文件的路径(它具有模板、部分视图、脚本和样式表的方法...)。 Name 属性 的文件名应该包括扩展名。

然后,如果您想要编辑文件,只需编辑文件即可。

后台的代码编辑器基本上只是使用 CodeFileController 从磁盘获取和保存文件,所以如果您必须做类似的事情,您可以看看它以获取灵感。

我显然不明白内容模板是什么,所以谢谢克劳斯给我解释。

我最终确实找到了问题的解决方案。事实证明,内容模板也称为蓝图。您可以使用以下代码获取内容模板(又名蓝图):

ApplicationContext applicationContext = ApplicationContext.Current;

// Obtain the Umbraco Content Service
var contentService = applicationContext.Services.ContentService;

// Obtain content template
var contentTemplate = contentService.GetBlueprintById(contentTemplateId);

如果您随后想从此蓝图创建内容节点,您可以使用:

// Create content node from content template
var content = contentService.CreateContentFromBlueprint(contentTemplate, "Content Node Name");

// Save and publish to new content node
Attempt<Umbraco.Core.Publishing.PublishStatus> publishStatus = contentService.SaveAndPublishWithStatus(content);