使用Rest-Api将ListItem添加到列表文件夹

Mar*_*ark 5 javascript rest sharepoint-2013

我在使用SharePoint 2013 REST API时在指定的文件夹中添加ListItem时遇到问题.

使用客户端对象模型,它看起来像这样:

    var creationInfo = new SP.ListItemCreationInformation();
    creationInfo.FolderUrl = "/Lists/MyList/MyFolder";
    var item = list.addItem(creationInfo );



    item.update();

    ctx.executeQueryAsync(
            Function.createDelegate(this, onSuccess),
            Function.createDelegate(this, onFail));
Run Code Online (Sandbox Code Playgroud)

但是当我试图通过Rest服务设置FolderUrl时

{ '__metadata' : { 'type': 'SP.Data.MyListListItem' }, 'Title': 'NewItemInFolder', 'FolderUrl': '/sites/example/Lists/MyList/MyFolder' }
Run Code Online (Sandbox Code Playgroud)

我得到了一个400 Bad Request

我还尝试首先将ListItem添加到List中,然后更新FolderUrl但这也不起作用.

如何使用Rest-Api将ListItem添加到SharePoint中的列表文件夹?

编辑:

 { '__metadata' : { 
            'type': 'SP.Data.MyListListItem',
            'type': 'SP.Data.ListItemCreationInformation'
    }, 
    'Title': 'NewItemInFolder',
    'FolderUrl': '/sites/example/Lists/MyList/MyFolder'
    }
Run Code Online (Sandbox Code Playgroud)

我现在尝试使用ListItemEntityTypeFullName我的List中的Entity和ListItemCreationInformation,但我也只得到400 Bad Request.

当我向Fiddler查询请求时,我发现SharePoint现在忽略了我的列表实体类型 SP.Data.MyListItem

Ton*_* Wu -1

Microsoft.SharePoint.Client.ClientContext clientContext = new Microsoft.SharePoint.Client.ClientContext("URL");

Microsoft.SharePoint.Client.List list = clientContext.Web.Lists.GetByTitle("FolderName");

var folder = list.RootFolder;

clientContext.Load(folder);

clientContext.Credentials = new NetworkCredential(username, password, domain);
clientContext.ExecuteQuery();

folder = folder.Folders.Add("ItemName");

clientContext.Credentials = new NetworkCredential(username, password, domain);
clientContext.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)