是否可以将Content挂钩中的IContent转换/转换为IPublishedContent或Model的构建器模型?
更具体地说,我正在使用“保存”挂钩,如下所示。挂钩的参考:https://our.umbraco.com/documentation/reference/events/contentservice-events
问题在于 content 变量是IContent类型,我无法进行强制转换。
我的相关代码将变量“问题”返回为null:
private void ContentService_Saving(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentSavingEventArgs e)
{
foreach (var content in e.SavedEntities)
{
var documentType = content.ContentType.Alias;
var question = content as IPublishedContent;
}
}
答案 0 :(得分:0)
必须是
var question = Umbraco.Web.Composing.Current.UmbracoHelper.Content(content.Id);
答案 1 :(得分:0)
在Umbraco 8中,答案是根据Davor Zlotrg的回答,但
git clone https://github.com/troldal/OpenXLSX.git
答案 2 :(得分:0)
实际上,您不应该在这些类型之间进行转换。 这两种类型之间有非常明显的区别:
IPublishedContent缓存在一个特殊的层中(Umbraco v8中的NuCache)。
当您挂起Saving事件时,您尚未对已发布的项目执行任何操作,因为该步骤是紧随其后的(并且是可选步骤),因此您只应使用IContent。
答案 3 :(得分:-1)
嗨@Antonios Tsimourtos
当前没有将IContent转换为Model的构建器模型的内置方法。查看此页面它会做什么,但是代码很多https://gist.github.com/jbreuer/dde3605035179c34b7287850c45cb8c9