将我的Wiki页面从一个SharePoint站点复制到另一个SharePoint站点时遇到问题。我正在使用CSOM(客户端对象模型)和以下(简化)代码:
var fileCreationInformation = new SP.FileCreationInformation();
string page = EXTRACTED VALUE OF THE SOURCE FIELD "wikiField" (string)
byte[] bytes = new byte[page.Length * sizeof(char)];
System.Buffer.BlockCopy(page.ToCharArray(), 0, bytes, 0, bytes.Length);
fileCreationInformation.Content = bytes;
fileCreationInformation.Overwrite = true;
fileCreationInformation.Url = EXTRACTED VALUE OF THE SOURCE FIELD "FileLeafRef" (string)
Microsoft.SharePoint.Client.File uploadFile = oList.RootFolder.Files.Add(fileCreationInformation);
clientContext.Load(uploadFile);
clientContext.ExecuteQuery();
我的问题是在复制之后,我的新wiki页面被创建并且内容被完美地显示,除了没有Quicklaunch和Ribbon。它只是我的原始内容(例如,仅用于xml页面的XML),它显示起来很丑陋:)
您是否知道如何解决此问题?我是否错过了某些内容或以错误的方式解决问题?
提前谢谢!
尼古拉斯
答案 0 :(得分:0)
谢谢Josh,这是个好主意。我通过使用AddTemplateFile修复了我的问题! 这是(简化)代码:
string path = PATH
SP.File wikiPage = oList.RootFolder.Files.AddTemplateFile(path, SP.TemplateFileType.WikiPage);
wikiPage.ListItemAllFields["WikiField"] = CONTENT
wikiPage.ListItemAllFields.Update();