Sharepoint PNP Core C # Как получить доступ к массиву веб-свойств клиентской страницы

#c# #sharepoint #office365

#c# #sharepoint #office365

Вопрос:

Привет всем, я работал над этим весь день сегодня, и, похоже, я не могу понять это. Я не очень хорошо разбираюсь в C # и скорее просто любитель. Чего я пытаюсь достичь, так это получить значения, которые находятся внутри массива json, называемого сайтами. Я могу извлечь заголовок, все свойства и т. Д… Я просто не знаю, как получить доступ к свойству, представляющему собой массив. Когда я пытаюсь запустить значения, мне возвращается Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken. Я также проверил, имеет ли ключ «сайты» значения, и он возвращает true. Любая помощь по этому вопросу была бы весьма признательна.

         private void btnGetLists_Click(object sender, EventArgs e)
    {
        var context = ConnectPNP();
        var web = context.Web;
        //context.Load(web, w => w.Lists);            
        context.ExecuteQueryRetry();

        var sitepages = web.Lists.GetByTitle("Site Pages");
        var item = sitepages.GetItemById(1);
        context.Load(item, i => i.File);
        context.ExecuteQueryRetry();

        var file = item.File;
        var page = ClientSidePage.Load(context, file.Name);            
        var webParts = page.Controls.FindAll(x => x.Type.Name == "ClientSideWebPart");
        
        foreach (var part in webParts)
        {
            var parttoshow = (ClientSideWebPart)part;
            var myWebPart = parttoshow.Properties;

            Console.WriteLine(myWebPart.Values());

        }
    }
  

Ответ №1:

@Timg,

Я протестировал ваш код в своей среде. Это ClientSideWebPart.Properties a Newtonsoft.Json.Linq.JObject .

введите описание изображения здесь

Думаю, вы можете использовать Item [String] для получения его значения. Чтобы получить внутренний массив, вы можете взять ссылку: