0

我创建了一个名为Application Test的站点。在这个站点中,我再次创建一个名为Sub Application的子站点。

"http://SP2010:2222/"我在 Visual Studio Project Project Scope 中添加站点 url是站点。现在,当我尝试从子站点(子应用程序)访问列表( TestList )时,它会给出错误列表不存在。以下代码访问列表(TestList):

using (SPSite sites = new SPSite(SPContext.Current.Site.Url))
        {
            using (SPWeb web = sites.OpenWeb())
            {
              SPList CurrentList = web.Lists["TestList"]; // Error comes here
            }
        }

有人有解决方案吗?

4

2 回答 2

1

尝试这个,

using (SPSite sites = new SPSite(SPContext.Current.Site.Url))
 {
    using (SPWeb web = sites.OpenWeb())
       {
          SPWebCollection subsites= web.GetSubwebsForCurrentUser(); //get subsites
           for (int i= 0; i< subsites.Count; i++)
              {
                SPWeb subSiteWeb= subsites[i];

                   SPList CurrentList = subSiteWeb.Lists["TestList"];
                   if (CurrentList != null)
                   break;       
               }                  
        }
 }
于 2012-07-11T07:02:52.957 回答
0

那么SPContext.Current.Site,您将事物部署到的当前站点是什么——不管它是什么。但是,当您不sites.OpenWeb()带任何参数进行操作时RootWeb,如果根网站没有您的列表,您将不会在那里找到它。

尝试使用各自的 URL 显式打开 Web 和站点,例如http://SP2010:2222/

于 2012-07-11T07:04:45.220 回答