Pregunta

Estoy tratando de usar el modelo de objeto del lado del cliente de SharePoint 2013 para leer un campo de Meta Data administrado, pero obtengo resultados nulos

Cuando miro en las columnas del sitio, hay 5 campos en el grupo de columnas "GroupName" que se debe devolver:

  • 1 línea única de campo de texto
  • 4 campos de metadatos administrados

    Estoy usando este C # para obtener las columnas en el grupo:

    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();
    }
    

    Cuando veo los resultados de la consulta, puedo ver el campo de texto sin formato, pero todos los otros campos son nulos (consulte la captura de pantalla)

    captura de pantalla

    Lo extraño es que hay un resultado para cada campo de metadatos, pero el valor es null.

    quiero

    1. saber por qué estoy obteniendo nulos, aunque la consulta está devolviendo 5 artículos como se espera

    2. Obtenga los nombres internos del campo de las columnas de metadatos administradas

¿Fue útil?

Solución 2

Resulta que fue un caso de referencias incorrectas de SharePoint.

Comencé a desarrollar para el desarrollo de SharePoint 2010, pero durante el período de desarrollo, el servidor se actualizó a SharePoint 2013. Por lo tanto, las referencias en mi proyecto estaban relacionadas con las 14 DLL de Hive.Actualizar estos para usar las 15 DLL de la colmena resultó en que los campos se recuperan correctamente

Otros consejos

Asegúrese de tener suficientes permisos (al menos Acceso de lectura al término ) para acceder a un servicio de metadatos administrados.Por favor, consulte un artículo Permiso de la subvención para acceder a los metadatos administradosServicio para un detalle.

Alternativamente, podría utilizar el servicio de descanso de SharePoint para consultar los nombres internos de la consulta de las columnas de metadatos administradas:

/_api/web/fields?$select=InternalName&$filter=TypeDisplayName eq 'Managed Metadata'

Licenciado bajo: CC-BY-SA con atribución
scroll top