Umbraco如何使用umbraco API发布所有未发布的子节点

时间:2012-03-15 03:17:28

标签: umbraco

我发现PublishWithSubs()方法只能发布父节点的第一级节点。

doc.PublishWithSubs(new User(0));

无论未发布的节点有多深,我如何在一个父节点下发布所有未发布的节点?

由于

2 个答案:

答案 0 :(得分:1)

Document类上有一个名为PublishWithChildrenWithResult()的方法。根据源代码,这将递归地发布分支下的所有内容:

   public bool PublishWithChildrenWithResult(User u)
    {
        if (PublishWithResult(u))
        {
            foreach (cms.businesslogic.web.Document dc in Children.ToList())
            {
                dc.PublishWithChildrenWithResult(u);
            }
        }
        else
        {
            return false;
        }

        return true;
    }

答案 1 :(得分:0)

使用较新的ContentService API,您可以这样做:

var cs = ApplicationContext.Current.Services.ContentService;    
cs.PublishWithChildrenWithStatus(nodeToPublish, includeUnpublished:true)

最后一个参数允许您指定是否还要发布未发布的后代。 这个方法有点命名,因为它会发布所有后代,而不仅仅是孩子。