Zhaobab
3/11/2015 - 9:17 AM

Create Sharepoint Wiki Page using CSOM

Create Sharepoint Wiki Page using CSOM

// ----------------------------------------------
// Author: Internet 
// Date: 11.03.2015
// Description: Create Sharepoint Wiki Page using CSOM
// ----------------------------------------------

/// <summary>
/// Create Wiki page via CSOM
/// </summary>
/// <param name="webUrl"></param>
/// <param name="pageName"></param>
/// <param name="pageContent"></param>
public static void CreateWikiPage(string webUrl, string pageName,string pageContent)
{
    const string templateRedirectionPageMarkup = "<%@ Page Inherits=\"Microsoft.SharePoint.Publishing.TemplateRedirectionPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c\" %> <%@ Reference VirtualPath=\"~TemplatePageUrl\" %> <%@ Reference VirtualPath=\"~masterurl/custom.master\" %>";
    using (var ctx = new ClientContext(webUrl))
    {
      var wikiPages = ctx.Web.Lists.GetByTitle("Pages");
      ctx.Load(wikiPages);
      ctx.ExecuteQuery();
 
      var file = new FileCreationInformation
                               {
                                   Url = pageName,
                                   Content = Encoding.UTF8.GetBytes(templateRedirectionPageMarkup),
                                   Overwrite = true
                               };
 
      var wikiFile = wikiPages.RootFolder.Files.Add(file);
      ctx.Load(wikiFile);
      ctx.ExecuteQuery();
 
      var wikiPage = wikiFile.ListItemAllFields;
      wikiPage["PublishingPageContent"] = pageContent;
      wikiPage["PublishingPageLayout"] = "/_catalogs/masterpage/EnterpriseWiki.aspx, Basic Page";
      wikiPage.Update();
      ctx.ExecuteQuery(); 
    }
}