SharePoint:检索列表时没有Web命名错误

时间:2012-01-04 06:24:13

标签: sharepoint

我在sharepoint server 2010中工作。我的要求是访问当前站点的所有列表。

在我的sharepoint服务器中,我有以下这些内容: 1)Sitecollection包含子站点

Ex:http://servername:portNo/SiteA/default.aspx其中SiteA是子网站。

2)WebApplication及其下的网站。

Ex:http://servername:portNo/sites/ProjectA/default.aspx其中ProjectA是webapplication下的网站

现在我需要获取当前站点中存在的所有列表,我在下面使用代码

SPSite SiteCollection = SPContext.Current.Site;
SPWeb web = SiteCollection.AllWebs[CurrentSiteAddress];            
List<SPList> listCollection = new List<SPList>();
SPListCollection **lists** = web.Lists;

当前网站是网站集,即主网站及其子网站时,上述代码有效。但是,当我的当前站点是Web应用程序下的站点时,代码会中断。

异常消息:没有名为\“/ sites / ProjectA \”的Web。“

但是当调试下面的代码时,

  

SPListCollection 列表 = web.Lists;

列表集合未填充。但是经过一段时间后,列表集合会被填充并且没有任何问题。谁能告诉我这可能是什么原因?我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

试试这个:

string siteurl = SPContext.Current.Site.Url;
string weburl = SPContext.Current.Web.ServerRelativeUrl;

using (SPWeb safeWeb = new SPSite(siteurl).OpenWeb(weburl))
{
    SPListCollection lists = web.Lists;
    foreach (SPList list in lists)
    {
      //do whatever you want with your list(s)
    }
}