CSOM и управляемые метаданные поля
-
10-12-2019 - |
Вопрос
Я пытаюсь использовать модель объекта на стороне клиента SharePoint 2013 для прочтения поля управляемого метаданного данных, но я получаю нулевые результаты
Когда я смотрю в столбцы сайта, есть 5 полей в группе столбцов «GroupName», которая должна быть возвращена:
- .
- 1 одна строка текстового поля
- 4 управляемых поля метаданных
Я использую этот C #, чтобы получить столбцы в группе:
.private void StackDemo(){ string contextUrl = "http://mysitecollection/sites/mysite"; string columnGroup = "GroupName"; var ctx = new ClientContext(contextUrl) { Credentials = CredentialCache.DefaultCredentials }; var query = ctx.LoadQuery(from x in ctx.Web.Fields where x.Group== columnGroup select x); ctx.ExecuteQuery(); return query.FirstOrDefault(); }
Когда я просматриваю результаты запросов, я могу просмотреть простое текстовое поле, но все другие поля NULL (см. Скриншот)
Странная вещь - это результат для каждого поля метаданных, но значение является
null
.Я хочу
-
Знаешь, почему я получаю ноль, даже если запрос возвращает 5 предметов, как и ожидалось,
-
Получить внутренние имена поля управляемых метаданных столбцов
-
Решение 2
Оказывается, это был случай неверных ссылок SharePoint.
Я начал развиваться для SharePoint 2010, но в течение периода разработки сервер был обновлен до SharePoint 2013. Итак, ссылки в моем проекте были связаны с 14 DLL.Обновление их, чтобы использовать 15 DLL улей, привели к получению полей правильно
Другие советы
Убедитесь, что у вас достаточно разрешений (по крайней мере, чтение доступа к сроку хранилища ) для доступа к службе управляемых метаданных.Пожалуйста, ознакомьтесь с статьей Разрешение разрешения на доступ к Управляемым метаданнымСервис для деталей.
В качестве альтернативы вы можете использовать службу отдыха SharePoint, чтобы запросить полевые внутренние имена столбцов управляемых метаданных:
./_api/web/fields?$select=InternalName&$filter=TypeDisplayName eq 'Managed Metadata'