Я искал и не могу найти документацию о том, как создать групповую страницу в API sitefinity. Я знаю, как создать страницу программно.
var pageDataId = Guid.NewGuid();
PageManager manager = PageManager.GetManager();
PageData pageData = null;
PageNode pageNode = null;
// Get the parent node Id
if (parentPageNodeId == Guid.Empty)
{
parentPageNodeId = SiteInitializer.CurrentFrontendRootNodeId;
}
PageNode parent = manager.GetPageNode(parentPageNodeId);
// Check whether exists
var initialPageNode = manager.GetPageNodes().Where(n => n.Id == pageId).SingleOrDefault();
if (initialPageNode != null)
{
return;
}
// Create the page
pageData = manager.CreatePageData(pageDataId);
pageData.HtmlTitle = pageName;
pageData.Title = pageName;
pageData.Description = pageName;
pageData.Culture = Thread.CurrentThread.CurrentCulture.ToString();
pageData.UiCulture = Thread.CurrentThread.CurrentUICulture.ToString();
pageNode = manager.CreatePage(parent, pageId, NodeType.Standard);
pageNode.Page = pageData;
pageNode.Name = pageName;
pageNode.Description = pageName;
pageNode.Title = pageName;
pageNode.UrlName = Regex.Replace(pageName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
pageNode.ShowInNavigation = true;
pageNode.DateCreated = DateTime.UtcNow;
pageNode.LastModified = DateTime.UtcNow;
// Check whether home page
if (isHomePage)
{
SystemManager.CurrentContext.CurrentSite.SetHomePage(pageId);
}
manager.SaveChanges();
// Publish
var bag = new Dictionary<string, string>();
bag.Add("ContentType", typeof(PageNode).FullName);
WorkflowManager.MessageWorkflow(pageId, typeof(PageNode), null, "Publish", false, bag);
}
Это создает обычную страницу. Я попытался изменить NodeType со стандартного на NodeType.Group и оставить остальную часть кода как есть. Однако это вызывает исключение «Текущая страница не является стандартной страницей». Я искал свойства pageNode, чтобы сделать страницу страницей группы, а не обычной страницей, но я не могу их найти. Если кто-нибудь знает, как это сделать, я был бы очень признателен.