I have a requirement where in I need to develop a web page using SharePoint Addin in Visual Studio such that user enters certain configuration data . This data that has to be stored on the SharePoint Online Web Property Bag i.e AllProperties.FieldValues. The code block below shows what I have implemented on a button click event of the page.
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context); var clientContext = spContext.CreateUserClientContextForSPHost(); var ConfigDataString=TextBox1.Text; Web web = clientContext.Web; clientContext.Load(web); clientContext.ExecuteQuery(); web.AllProperties.FieldValues.Add("Config", ConfigDataString); web.Update(); clientContext.ExecuteQuery();
But when I tried to fetch the same key value again by implementing the following code on another button click, I could not find the key on the property field values.
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context); var clientContext = spContext.CreateUserClientContextForSPHost(); Web web = clientContext.Web; clientContext.Load(web); clientContext.ExecuteQuery(); var configData = web.AllProperties.FieldValues["Config"].ToString();//Exception here
Then, I tried to update other properties of the Web such as Web Title or Description and I could successfully post the changes to the SharePoint Online.I have same code block for SharePoint On premise server and I could successfully store data on the RootWeb or Site Properties. Did I miss anything when it comes to SharePoint Online? I have a speculation that the problem is with the client context. Please let me know where I can see the properties of the Web or SiteCollection in the SharePoint Online interface.