문제

SharePoint 2013의 클라이언트 측 개체 모델을 사용하여 관리되는 메타 데이터 필드를 읽으려고하지만 NULL 결과를 얻으려면

사이트 열을 살펴볼 때 반환 해야하는 "groupName"열 그룹에 5 개의 필드가 있습니다.

  • 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 (screenshot 참조)

    화면 캡처

    이상한 것은 각 메타 데이터 필드에 대한 결과가 있지만 값은 null입니다.

    1. 쿼리가 예상대로 5 개의 항목을 반환하는지 확인하십시오

    2. 관리되는 메타 데이터 열의 필드의 내부 이름을 가져옵니다

도움이 되었습니까?

해결책 2

잘못된 SharePoint 참조가 잘못되었음을 꺼냅니다.

SharePoint 2010을 개발하기 시작했지만 개발 기간 동안 서버가 SharePoint 2013으로 업데이트되었습니다. 이렇게하면 내 프로젝트의 참조가 14 개 하이브 DLL과 관련이있었습니다.이를 위해이를 업데이트하여 15 개 하이브 DLL을 사용하여 필드가 올바르게 검색되는 필드가 올바르게 검색됩니다

다른 팁

관리되는 메타 데이터 서비스에 액세스하려면 충분한 사용 권한 (적어도 읽기 에 대한 읽기 액세스 권한)이 있는지 확인하십시오. "Nofollow"> 관리되는 메타 데이터에 액세스 할 수있는 권한 부여 권한세부 정보를 위해 서비스 .

또는 관리되는 메타 데이터 열의 필드 필드의 내부 이름을 쿼리하기 위해 SharePoint REST 서비스를 활용할 수 있습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top