我正在连接 Episerver 中的 PublishedContent 事件,因此当用户发布特定页面类型时,会执行一些逻辑(创建 pdf)并将字符串值保存到其中一个属性中。(pdf 的路径)
这是有效的,创建了 PDF 并且还保存了 PDF 的路径。
但是我遇到的问题是发布完成后,所有属性都变为只读,我必须单击另一个节点,然后再次单击该节点,然后才能对其进行编辑。- 这是正常的,还是与我的保存方式有关?
这是我的代码:
public void Initialize(InitializationEngine context)
{
var events = ServiceLocator.Current.GetInstance<IContentEvents>();
events.PublishedContent += EventsPublishedContent;
}
private void EventsPublishedContent(object sender, ContentEventArgs e)
{
if (e.Content is myType)
{
var currentPage = e.Content as RatePlanPageType;
var pdfPath = businessLogic.CreatePdf(e.content);
var clone = currentPage.CreateWritableClone();
clone.Property["PdfFiles"].Value = pdfPath;
var contentRepository = ServiceLocator.Current.GetInstance<IContentRepository>();
contentRepository.Save(clone, SaveAction.Save);
}
}
这就是保存后 UI 中所有属性的样子。
如果我单击树中的另一个节点,然后再次单击该节点,它会恢复正常并且所有数据都已正确保存。