Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用CSOM读取Sharepoint中的网站页面内容_C#_Sharepoint_Sharepoint Online_Csom - Fatal编程技术网

C# 使用CSOM读取Sharepoint中的网站页面内容

C# 使用CSOM读取Sharepoint中的网站页面内容,c#,sharepoint,sharepoint-online,csom,C#,Sharepoint,Sharepoint Online,Csom,在我的项目中,我需要在本地存储站点页面。这些页面可以是已发布或未发布的页面。我已尝试使用以下代码,但无法获取页面内容 ClientContext clientcontext = new ClientContext(url); var credentials = new SharePointOnlineCredentials(userid, SecurePass); clientcontext.Credentials = credentials; Web web = client

在我的项目中,我需要在本地存储站点页面。这些页面可以是已发布或未发布的页面。我已尝试使用以下代码,但无法获取页面内容

ClientContext clientcontext = new ClientContext(url);
   var credentials = new SharePointOnlineCredentials(userid, SecurePass);
   clientcontext.Credentials = credentials;
   Web web = clientcontext.Web;
   clientcontext.Load(web, website => website.Lists);
   clientcontext.ExecuteQuery();
   clientcontext.Load(web, website => website.Lists,
                             website => website.Lists.Where(
                             x => x.BaseTemplate == 119));

   clientcontext.ExecuteQuery();
   var _collection = web.Lists;
   foreach (var pages in _collection)
   {

       clientcontext.Load(pages);
       clientcontext.ExecuteQuery();

       CamlQuery cq = new CamlQuery();
       var pg = pages.GetItems(cq);
       clientcontext.Load(pg);
       clientcontext.ExecuteQuery();
       foreach (var item in pg)
       {
           clientcontext.Load(item);
           clientcontext.ExecuteQuery();
           var f_webPage = clientcontext.Web.GetFileByServerRelativeUrl(item.File.ServerRelativeUrl);
           clientcontext.Load(f_webPage);
           clientcontext.ExecuteQuery();

       }
  }
如何获取网站页面内容? 提前感谢。

在站点页面库(列表类型)中,列表项的内容取决于内容类型可以从以下下划线中提取:

  • Wiki页面
  • CanvasContent1
    字段,如果是
    站点页面
    (aka)
范例

var listTitle = "Site Pages";
var list = ctx.Web.Lists.GetByTitle(listTitle);
var items = list.GetItems(CamlQuery.CreateAllItemsQuery());
ctx.Load(items, icol => icol.Include( i => i["WikiField"], i => i["CanvasContent1"], i => i["FileRef"], i => i.ContentType));
ctx.ExecuteQuery();
foreach (var item in items)
{
     Console.WriteLine(">>> {0}", item["FileRef"]);
     switch (item.ContentType.Name)
     {
        case "Site Page":
          Console.WriteLine(item["CanvasContent1"]);
          break;
        case "Wiki Page":
          Console.WriteLine(item["WikiField"]);
          break;

     }    
 }

为什么将此asnwer标记为解决方案!?这不是问题中的问题!