Javascript SharePoint 2010 REST API,将内容发布到包含;“用户”;纵队
例如,我有一个名为“购物清单”的列表,它有两列。 第一列类型为人员或组(允许多人),列名为“客户”。 第二列类型为字符串 我可以使用ajax将信息发布到普通的SharePoint列表中,但不能发布到这个购物列表中。 我知道如何格式化单用户列的数据,但不知道如何格式化多用户列的数据,单用户列类似于: 列名为Customer,数据格式应为:Javascript SharePoint 2010 REST API,将内容发布到包含;“用户”;纵队,javascript,rest,sharepoint,sharepoint-2010,Javascript,Rest,Sharepoint,Sharepoint 2010,例如,我有一个名为“购物清单”的列表,它有两列。 第一列类型为人员或组(允许多人),列名为“客户”。 第二列类型为字符串 我可以使用ajax将信息发布到普通的SharePoint列表中,但不能发布到这个购物列表中。 我知道如何格式化单用户列的数据,但不知道如何格式化多用户列的数据,单用户列类似于: 列名为Customer,数据格式应为: item.CustomerID=1对于SharePoint 2010 REST界面,多值用户字段的正确负载应如下所示: '<MultiUserField
item.CustomerID=1代码>对于SharePoint 2010 REST界面,多值用户字段的正确负载应如下所示:
'<MultiUserFieldName>': [
{
__metadata: {
"uri": "<WebUrl>/_vti_bin/listdata.svc/UserInformationList(<UserId>)"
}
}
]
在哪里
很好,非常感谢。事实上,为了这个答案,我在谷歌上搜索了一整天。
var webUrl = "http://contoso.intranet.com";
var listName = "ShoppingCart";
var properties = {
'Title': 'Item #123',
'Customers': createPayloadForMultiUserField(webUrl,[1,2,3])
};
createListItem(webUrl,listName,properties)
.done(function(data){
console.log('Item ' + data.d.Title + ' has been created');
})
.fail(function(error){
console.log(JSON.stringify(error));
});
function createListItem(webUrl,listName, itemProperties) {
return $.ajax({
url: webUrl + "/_vti_bin/listdata.svc/" + listName,
type: "POST",
processData: false,
contentType: "application/json;odata=verbose",
data: JSON.stringify(itemProperties),
headers: {
"Accept": "application/json;odata=verbose"
}
});
}
function createPayloadForMultiUserField(webUrl,userIds)
{
return userIds.map(function(id){
return {
__metadata: {
"uri": webUrl + "/_vti_bin/listdata.svc/UserInformationList(" + id + ")"
}
}
});
}