C# 使用CSOM使用多个值更新托管元数据列
我的远程事件接收器中有以下代码,用于创建新文件夹,然后使用当前项(已添加的项)值填充文件夹管理的元数据字段:- 现在,当前项和列表项上的C# 使用CSOM使用多个值更新托管元数据列,c#,sharepoint,sharepoint-online,office365-apps,C#,Sharepoint,Sharepoint Online,Office365 Apps,我的远程事件接收器中有以下代码,用于创建新文件夹,然后使用当前项(已添加的项)值填充文件夹管理的元数据字段:- 现在,当前项和列表项上的FodlerType都是一个托管元数据列,只允许单个值,而CorpType允许多个值。我的上述代码将为FolderType正确分配一个值,但在更新CorpType时会引发此错误:- Microsoft.SharePoint.Client.ClientRequestException HResult=0x80131500消息=对象未与 对象标识或对象标识无效。源=
FodlerType
都是一个托管元数据列,只允许单个值,而CorpType
允许多个值。我的上述代码将为FolderType
正确分配一个值,但在更新CorpType
时会引发此错误:-
Microsoft.SharePoint.Client.ClientRequestExceptionHResult=0x80131500消息=对象未与 对象标识或对象标识无效。源=堆栈跟踪: 有什么建议吗?您需要使用该对象
var field=item.ParentList.Fields.GetByInternalNameOrTitle(“CorpType”);
var corpTypeTaxField=context.CastTo(字段);
Load(item,i=>i[TaxKeywordFieldName]);
var valuesToCopy=corpTypeTaxField.GetFieldValueByValueCollection(currentitem[“CorpType”].ToString());
corpTypeTaxField.SetFieldValueByValueCollection(列表项,值复制);
请注意,如果您有从头开始构建TaxonomyFieldValueCollection
时需要查找的术语,那么这会变得更混乱——从另一个项目复制它肯定更容易。您需要使用该对象
var field=item.ParentList.Fields.GetByInternalNameOrTitle(“CorpType”);
var corpTypeTaxField=context.CastTo(字段);
Load(item,i=>i[TaxKeywordFieldName]);
var valuesToCopy=corpTypeTaxField.GetFieldValueByValueCollection(currentitem[“CorpType”].ToString());
corpTypeTaxField.SetFieldValueByValueCollection(列表项,值复制);
注意,如果您有从头开始构建TaxonomyFieldValueCollection
时需要查找的术语,那么这会变得更加混乱——从另一个项目复制它肯定更容易
ListItem listItem = context.Web.GetList(webrelativeurl + "/"+i2["TemplateListUrl"]).AddItem(listItemCreationInformation);
listItem["FolderType"] = currentitem["FolderType"];
listItem["CorpType"] = currentitem["CorpType"];