CSOM und verwaltetes Metadatenfeld
-
10-12-2019 - |
Frage
Ich versuche, das clientseitige Objektmodell von SharePoint 2013 zum Lesen eines verwalteten Metadatenfelds zu verwenden, erhalte jedoch keine Ergebnisse
Wenn ich in die Site-Spalten schaue, gibt es 5 Felder in der Spaltengruppe "Gruppenname", die zurückgegeben werden sollen:
- 1 einzelne Textzeile Feld
- 4 verwaltete Metadatenfelder
Ich benutze dieses C #, um die Spalten in der Gruppe zu erhalten:
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();
}
Wenn ich die Abfrageergebnisse ansehe, kann ich das Nur-Text-Feld anzeigen, aber alle anderen Felder sind null (siehe Screenshot)
Das Seltsame ist, dass es für jedes Metadatenfeld ein Ergebnis gibt, aber der Wert ist null
.
Ich möchte
Wissen Sie, warum ich Nullen erhalte, obwohl die Abfrage erwartungsgemäß 5 Elemente zurückgibt
Ruft die internen Namen der verwalteten Metadatenspalten des Felds ab
Lösung 2
Es stellte sich heraus, dass es sich um falsche SharePoint-Referenzen handelte.
Ich habe mit der Entwicklung für SharePoint 2010 begonnen, aber während der Entwicklungsphase wurde der Server auf SharePoint 2013 aktualisiert.Die Referenzen in meinem Projekt bezogen sich also auf die 14 Hive-DLLs.Das Aktualisieren dieser zur Verwendung der 15 Hive-DLLs führte dazu, dass die Felder korrekt abgerufen wurden
Andere Tipps
Stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen (mindestens Lesezugriff auf den Terminologiespeicher), um auf einen verwalteten Metadatendienst zuzugreifen.Bitte verweisen Sie auf einen Artikel Erteilen der Berechtigung zum Zugriff auf den verwalteten Metadatendienst für ein Detail.
Alternativ können Sie den SharePoint REST-Dienst verwenden, um feldinterne Namen der verwalteten Metadatenspalten abzufragen:
/_api/web/fields?$select=InternalName&$filter=TypeDisplayName eq 'Managed Metadata'