我有一个从自定义网站定义创建的 SharePoint 网站。站点定义具有以下功能:
- 自定义内容类型。
- 其 schema.xml 文件引用该内容类型的自定义列表模板。
- 引用我上面的列表模板功能的列表实例功能。
在站点配置过程中,我按照上面的顺序通过 C# 代码激活了这些功能中的每一个(每个都在 SPWeb 级别)。我生成的网站看起来与我预期的一样,并且工作正常,但它有一个奇怪的工件,即我的网站的“所有网站内容”页面显示了我的自定义列表两次。
我的列表运行良好——它的物品接收器正确触发并且只触发一次。在SharePoint Manager (SPM)中,我还看到列表显示了两次,当我展开树查看属性时,它们在两个列表中看起来相同(甚至列表中的列表项)。我怀疑我可能在自欺欺人,而 SPM 可能只是两次查看同一个列表,而一些实际的流氓列表位于我网站的阴影中。
那么,这里可能出了什么问题?我怎么能创建多个同名列表?如何正确创建此列表?我怎样才能正确地清理现有网站中表现出这种行为的怪异之处?
编辑: 为了回应 Michael Stum 的问题,我创建了这个控制台应用程序来遍历站点列表并获取 ID:
using (SPSite site = new SPSite("http://myserver/projects/myproject"))
{
using (SPWeb web = site.OpenWeb())
{
var lists = web.Lists;
foreach (SPList list in lists)
{
Console.WriteLine(list.ID + ": " + list.Title);
}
}
}
这段代码显示了我的列表两次——相同的标题,相同的 ID。
另一个编辑: 我查看了该网站的 SharePoint 内容数据库,并执行了以下查询:
SELECT * FROM AllLists where tp_webid = '<my SPWeb guid>'
这表明我从上面的 C# 代码中检索到的只有一个带有标题和 GUID 的实际列表。那么,当我浏览我的网站时,是什么导致这些多个条目出现?