2

我需要使用客户端对象模型检查 SharePoint 网站上是否存在 Web 属性。

SP.Web web = clientContext.Site.RootWeb;
clientContext.Load(web.AllProperties, p=> p[propertyName]);
clientContext.ExecuteQuery();

此代码失败,因为没有名称为 propertyName 的属性。在尝试加载此属性之前,我如何检查它是否存在?

4

1 回答 1

5
Site spSite = clientContext.Site;
clientContext.Load(spSite);
Web spWeb = spSite.RootWeb;
clientContext.Load(spWeb, w => w.AllProperties);
clientContext.ExecuteQuery();
var allProperties = spWeb.AllProperties;
clientContext.Load(allProperties);

// next line checks if property exists
if (!spWeb.AllProperties.FieldValues.ContainsKey("SiteType"))
{
    spWeb.AllProperties["SiteType"] = "BuildWork";
    spWeb.Update();
}
clientContext.Load(spWeb, w => w.AllProperties);
clientContext.ExecuteQuery();
于 2013-12-27T20:01:50.377 回答