无法在客户端对象模型中获取文档库url



我使用的是Sharepoint 2010。

在Sharepoint门户中创建了文档库。

我明白这是建议,图书馆的url不应该包含任何空格。所以最初它是作为PPCompanies创建的。然后,为了使库名更加用户友好,通过库设置将其重命名为SC文档。url不变,仍然是PPCompanies.

我发现在我的客户端对象模型中,我必须使用新的标题"PP文档"访问库。但是,我想要url,以便我可以放置一个超链接到我保存到库的文档。我该怎么做呢?我希望这是Sharepoint.Client.List对象的属性,但是当我创建它时,似乎没有设置这样的属性。

这是将文档保存到"PP Companies"的代码。值"PP Companies"在this.DocumentLibrary;

    public void Save(byte[] file, string url)
    {
        using (var context = newClientContext(this.SharepointServer))
        {
            context.Credentials = newNetworkCredential(this.UserName, this.Password, this.Domain);
            var list = context.Web.Lists.GetByTitle(this.DocumentLibrary);
            var fileCreationInformation = newFileCreationInformation
                                              {
                                                  Content = file,
                                                  Overwrite = true,
                                                  Url = url
                                              };
            var uploadFile = list.RootFolder.Files.Add(fileCreationInformation);
            uploadFile.ListItemAllFields.Update();
            context.ExecuteQuery();
            if (this.Metadata.Count > 0)
            {
                this.SaveMetadata(uploadFile, context);
            }
        }
    }
    private void SaveMetadata(File uploadFile, ClientContext context)
    {
        var item = uploadFile.ListItemAllFields;
        foreach (var row inthis.Metadata)
        {
            item[row.Key] = row.Value;
        }
        item.Update();
        context.ExecuteQuery();
    }

所以这段代码可以工作。但我不能使用"PP公司"来获得URL后,我需要这已经执行超链接。

我已经发现了上下文。Url只是根文件夹的Url。

list.RootFolder.ServerRelativeUrl未设置

当你在使用SharePoint时使用客户端上下文,你需要使用上下文。在读取对象及其属性之前加载方法。

在您的案例中,在ExecuteQuery方法调用之前添加context.Load(list.RootFolder);。然后列表对象和RootFolder属性将从服务器发送并在客户端上访问。

相关内容

  • 没有找到相关文章

最新更新