我创建了一个名为 Application Test 的站点。在此站点中,我再次创建一个名为子应用程序的子站点。
我在Visual Studio Project中添加了站点URL "http://SP2010:2222/"
项目范围是网站。
现在,当我尝试从子站点(子应用程序)访问列表( TestList )时,它会给出错误列表不存在。
遵循代码访问列表( TestList ):
using (SPSite sites = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = sites.OpenWeb())
{
SPList CurrentList = web.Lists["TestList"]; // Error comes here
}
}
有人有解决方案吗?
答案 0 :(得分: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;
}
}
}
答案 1 :(得分:0)
好SPContext.Current.Site
是您将事物部署到的当前网站 - 无论它是什么。但是当您sites.OpenWeb()
没有任何参数时,会打开RootWeb
,如果根网站没有您的列表,您将无法找到它。
尝试使用各自的网址明确打开网站和网站,例如http://SP2010:2222/