首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SharePoint 2010中遍历特定级别的站点

在SharePoint 2010中遍历特定级别的站点
EN

Stack Overflow用户
提问于 2011-02-17 19:18:38
回答 1查看 2K关注 0票数 1

如何从特定级别遍历我的所有站点。目前,我在以下位置有网站:http://myintranet.com/sites

我想要做的是从/sites输出我的所有站点,因为我在该级别下还有其他子站点。

我该怎么做呢?

目前,我的代码如下所示:

代码语言:javascript
复制
private void GetNavigation()
    {
        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
            using (SPWeb intranetSite = new SPSite(SPContext.Current.Web.Url + "/sites/").OpenWeb())
            {
                SPWebCollection subSites = intranetSite.Webs;

                NavigationOutputHtml.Text = CreateNavigationHtml(subSites);
            }

        });
    }

我所有的迭代都在"CreateNavigationHtml“方法中进行。但是我似乎无法将正确的站点从SPWebCollection传递到我的方法中。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 22:09:51

/sites不是一个网站,它是一个Managed Path。在SharePoint中,IIS站点是web应用程序。托管路径允许SharePoint在单个IIS站点中拥有多个站点集合。然后将SharePoint站点捆绑在一个站点集合中。

因此,要获取Web应用程序的/sites托管路径中所有站点集合中的所有站点,您将需要如下代码:

代码语言:javascript
复制
foreach (SPSite site in SPContext.Current.Site.WebApplication.Sites)
{
    try
    {
        if (SPSite.Exists(new Uri(site.Url)) && site.ServerRelativeUrl.StartsWith("/sites/"))
        {
            SPWebCollection subSites = site.AllWebs;
            NavigationOutputHtml.Text = CreateNavigationHtml(subSites);
        }
    }
    finally
    {
        site.Dispose();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5028230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档