У меня есть сайт SharePoint, который создается из пользовательского определения сайта. Определение сайта имеет следующие особенности:
- Пользовательский тип контента.
- Пользовательский шаблон списка, в котором файл schema.xml ссылается на этот тип содержимого.
- Функция экземпляра списка, которая относится к моей функции шаблона списка выше.
В процессе подготовки сайта я активирую каждую из этих функций (каждая на уровне SPWeb) с помощью кода C # в указанном выше порядке. Мой получившийся сайт выглядит так, как я ожидаю, и, кажется, работает нормально, но у него есть странный артефакт, заключающийся в том, что на странице «все содержимое сайта» для моего сайта дважды отображается мой пользовательский список.
Мой список работает нормально - его приемники предметов срабатывают корректно и только один раз. В SharePoint Manager (SPM) я также вижу, что список отображается дважды, и когда я раскрываю дерево, чтобы посмотреть на атрибуты, они отображаются одинаковыми для двух списков (даже для элементов списка внутри списков) , Я подозреваю, что, возможно, я обманываю себя, и SPM может просто смотреть на один и тот же список дважды, в то время как какой-то фактический список мошенников лежит в темных тенях моего сайта.
Итак, что здесь могло пойти не так? Как я мог создать несколько списков с тем же именем? Как я могу правильно создать этот список? И как я могу правильно убрать странности на существующих сайтах, которые демонстрируют такое поведение?
Edit:
В ответ на вопрос Майкла Стума я создал это консольное приложение для просмотра списков сайта и получения идентификатора:
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);
}
}
}
Этот код показывает мой список дважды - тот же заголовок, тот же идентификатор.
Другое редактирование:
Я посмотрел в базе данных контента SharePoint для этого сайта, и я выполнил этот запрос:
SELECT * FROM AllLists where tp_webid = '<my SPWeb guid>'
Это показывает, что есть только один фактический список с заголовком и GUID, который я получил из моего кода C # выше. Итак, что вызывает появление этих нескольких записей при просмотре моего сайта?