我正在尝试通过客户端对象模型在 Sharepoint 2010 页面库中创建页面,但我找不到任何有关如何执行此操作的示例。我尝试了两种方法:
第一种是将Pages库视为列表,并尝试添加列表项。
static void createPage(Web w, ClientContext ctx)
{
List pages = w.Lists.GetByTitle("Pages");
//ListItem page = pages.GetItemById(0);
ListItemCreationInformation lici = new ListItemCreationInformation();
ListItem li = pages.AddItem(lici);
li["Title"] = "hello";
li.Update();
ctx.ExecuteQuery();
}
正如预期的那样,这失败并显示错误消息:
To add an item to a document library, use SPFileCollection.Add()
我尝试的下一个方法是将其添加为文件。问题是 FileCreationInformation 对象需要一个字节数组,我不确定要传递给它什么。
static void createPage(Web w, ClientContext ctx)
{
List pages = w.Lists.GetByTitle("Pages");
FileCreationInformation file = new FileCreationInformation();
file.Url = "testpage.aspx";
file.Content = new byte[0];
file.Overwrite = true;
ctx.Load(pages.RootFolder.Files.Add(file));
ctx.ExecuteQuery();
}
上面的代码将在页面库中添加一个项目,但打开文件会显示一个我无法编辑的空白页面。通过阅读各种主题,我怀疑可能只能通过服务器端代码添加页面。有什么想法吗?
谢谢