使用SharePoint REST API上传文件后能否更新页面布局?
你通过以下REST API上传的.aspx页面布局为空时,完全可以更新或创建页面布局:
_api/web/getfolderbyserverrelativeurl('/Pages')/files/add(url='Pages/14789564.aspx')
核心操作方法
- 更新现有页面布局:上传页面后,通过REST API修改页面列表项的布局属性,关键是设置
PublishingPageLayout字段,格式为~sitecollection/_catalogs/masterpage/{布局文件名}.aspx, {布局显示标题} - 上传时同步设置布局:先完成页面上传,紧接着调用列表项更新接口关联布局;也可在上传后立即通过
ListItemAllFields字段直接绑定布局
具体操作步骤
获取页面的列表项ID
调用接口获取刚上传页面的Item ID:_api/web/getfolderbyserverrelativeurl('/Pages')/files/getbyurl('Pages/14789564.aspx')/ListItemAllFields从返回结果中提取
Id字段值提交布局更新请求
发送POST请求(需携带X-HTTP-Method: MERGE请求头):_api/web/lists/getbytitle('Pages')/items({获取到的ItemId})请求体(JSON格式)示例:
{ "__metadata": { "type": "SP.Data.PagesItem" }, "PublishingPageLayout": "~sitecollection/_catalogs/masterpage/ArticleLeft.aspx, Article Left" }替换为你实际使用的布局文件路径和标题即可
验证布局生效
再次调用页面的ListItemAllFields接口,检查PublishingPageLayout字段是否更新;或直接访问页面查看布局是否正常加载
注意事项
- 操作账号需拥有页面编辑、发布权限
- 目标布局文件必须存在于站点集的
_catalogs/masterpage库中,否则设置会失败 - 经典站点适用上述方法,现代站点需改用
_api/sitepages/pages系列接口操作
内容的提问来源于stack exchange,提问作者Madhu Nali
相关产品推荐
相关产品推荐

