У меня есть запланированное задание, которое перебирает все страницы определенного типа, создает блок для каждой страницы и помещает его в ContentArea.
if (productPageClone.GeneralContentArea == null)
{
productPageClone.GeneralContentArea = new ContentArea();
}
var newBlockForArea = _contentRepository.GetDefault<CrossLinkContainerBlock>
(assetsFolderForPage.ContentLink, productPageClone.Language);
(newBlockForArea as IContent).Name = "newCrossLinkContainer";
var blockReference = _contentRepository.Save((newBlockForArea as IContent), SaveAction.Publish,
AccessLevel.NoAccess);
var newItem = new ContentAreaItem();
newItem.ContentLink = blockReference;
productPageClone.GeneralContentArea.Items.Add(newItem);
Когда блок Создан, он опубликован.
Когда страница обновляется, она либо сохраняется, либо публикуется в зависимости от более раннего статуса.
_contentRepository.Save(productPageClone, SaveAction.ForceCurrentVersion | SaveAction.Publish,
AccessLevel.NoAccess);`
Позже при проверке страницы блок находится в папке ресурсов страницы. и блок находится в правильной ContentArea, и он отображает правильно. Единственная проблема заключается в том, что когда я редактирую блок, он говорит: «Этот элемент нигде не используется».
Однако затем я переиздаю sh страницу, на которой находится блок, и затем отредактирую блок. говорит: «Изменения, внесенные здесь, затронут как минимум 1 элемент», как и должно быть.
Я использую Episerver 11.11.2.0
Я запускал запланированное задание вручную каждый раз, когда проверял это.
Кто-нибудь знает, почему это происходит?