SharePoint 2013 App - CRUD operation
本文关键字:CRUD operation App 2013 SharePoint | 更新日期: 2023-09-27 18:25:39
我是具有外部内容的 SharePoint 2013 应用程序的新手。我可以从SQL中提取数据,并可以在应用程序页面中填充。但是我尝试添加新数据,我收到以下错误消息
来自网页的消息
{"readyState":4,"responseText":"{'"error'":{'"code'":'"-1, Microsoft.SharePoint.Client.InvalidClientQueryException'",'"message'":{'"lang'":'"en-US'",'"value'":'"An entry without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified.'"}}}","status":400,"statusText":"Bad Request"}
还行
我使用了以下代码
create: function (dname, description) {
debugger;
$.ajax({
url: _spPageContextInfo.webServerRelativeUrl +
"/_api/web/lists/getByTitle('tblDomain_SP')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: JSON.stringify({'DomainName':dname,'Description':description}),
dataType: "json",
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function () {
REST.DomainFormFiller.clear();
},
error: function (err) {
alert(JSON.stringify(err));
}
});
}
你能帮我把数据插入SQL表吗?
错误:
找到没有类型名称的条目,但没有预期的类型 指定。要允许没有类型信息的条目,应 指定模型时还必须指定类型
由于列表项条目中缺少Type
属性而发生。
列表项类型
若要创建列表项,需要包含列表项类型。这是首次创建列表时由 SharePoint 自动创建的字符串。获得此目的的两种可能方法是:
- 对列表执行读取操作,并在返回的元素集。在 JSON 格式中,可以在所有返回的列表项的
__metadata
属性。 - 您可以尝试从列表名称生成值。通常列表项类型遵循约定
SP.Data.ListNameListItem
(例如列表名称为Test
,列表项类型为SP.Data.TestListItem
(。然而情况并非总是如此。例如自动 SharePoint将列表名称的第一个字母大写(例如列表名称test
列表项类型为SP.Data.TestListItem
(。
溶液
以下代码片段演示如何基于列表名称生成列表项类型:
function GetItemTypeForListName(name) {
return"SP.Data." + name.charAt(0).toUpperCase() + name.slice(1) + "ListItem";
}
然后你需要替换该行:
data: JSON.stringify({'DomainName':dname,'Description':description}),
有了这个:
data: JSON.stringify({'DomainName':dname,'Description':description,"__metadata": { "type": GetItemTypeForListName('tblDomain_SP') }}),
引用
使用 REST API 操作 SharePoint 托管应用程序中的列表项