使用REST保存人员或组字段

c0d*_*nja 4 sharepoint sharepoint-2013

有谁知道如何使用REST保存Person字段?

我尝试了以下它,它的工作原理:

{ 
   "__metadata": { "type": "SP.Data.SomeListListItem" } , 
   "MyPersonFieldId" : 1
}
Run Code Online (Sandbox Code Playgroud)

但这只有在您知道ID时才有效.我没有那个!我怎么才能得到它?我有钥匙i.0#w|domain\userName.

我尝试了以下内容,它也无效:

{ 
   "__metadata": { "type": "SP.Data.SomeListListItem" } , 
   "MyPersonField" : { "__metadata": { "type": "SP.Data.UserInfoItem" }, "Name": "i.0#w|domain\userName" }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗??谢谢!

Chr*_*ick 5

我没有使用Person字段完成此操作,但我确实使用托管元数据字段执行了类似操作.我基本上必须传递附加信息作为对象来创建字段中的值.

查看是否传递用户的ID以及名称是否有效.我自己也要尝试这个,因为我有同样的需要.

{
     "MyPersonField": { "Name": "i.0#w|domain\userName", "ID": 1 }
}
Run Code Online (Sandbox Code Playgroud)

编辑:好的,更新这个字段比我想象的容易.我只需将用户的ID传递到Id字段即可执行更新:

{
     "MyPersonFieldId": 1
}
Run Code Online (Sandbox Code Playgroud)

这意味着用户应该已经在网站集中,因此如果用户不存在,则请求将失败.