SharePoint CSOM:如何使用 ValidateUpdateListItem 更新个人或组字段?

Erw*_*win 2 sharepoint updates splistitem spuserfield csom

我正在使用客户端对象模型的 ValidateUpdateListItem 方法更新 SharePoint 列表项,以防止创建新的项版本。这基本上适用于除人员或组字段类型之外的所有字段。有谁知道用作 ListItemFormUpdateValue 对象的 FieldValue 的用户或组值的正确字符串表示是什么?我已经尝试了所有对我来说似乎合理的东西(来自用户信息的用户 ID、登录名、查找值,如这些数据的组合等),但没有任何成功。

小智 7

我刚刚遇到一个问题,即使用项目更新更新超过 12 个人员或组字段导致它抛出异常。显然,这是由于在线 SP 中的列表视图查找阈值造成的(截至目前为 12)。

http://blog.vanmeeuwen-online.nl/2012/07/value-does-not-fall-within-expected.html

为了解决这个问题,我使用了 ValidateUpdateListItem 方法来更新个人或组 ID。诀窍是为它分配一个格式为的json

[{"Key":"i:0#.f|membership|user@yoursite.onmicrosoft.com"}]

 formValues.Add(new ListItemFormUpdateValue() { FieldName = "AssignedTo", FieldValue = "[{'Key':'i:0#.f|membership|user@yoursite.onmicrosoft.com'}]" });
Run Code Online (Sandbox Code Playgroud)

对于多个值,可以用逗号分隔。没有与组一起尝试过,但我认为它应该有效。

希望这对某人有用。