【问题标题】:Call static method to get absolute URL of SharePoint 2010 document调用静态方法获取 SharePoint 2010 文档的绝对 URL
【发布时间】:2015-07-01 06:55:27
【问题描述】:

我正在尝试检索 SharePoint 2010 文档库中当前文档的 URL,以便可以将其添加到 SharePoint 2010 工作流中的电子邮件中。

目前,我在 Utilities.cs 文件中有以下代码:

namespace WorkflowProject1.Workflow1
{
    public static class Utilities
    {
        public static string AbsoluteUrl(this SPFile File)
        {
            string EncodedUrl = File.Item[SPBuiltInFieldId.EncodedAbsUrl].ToString();
            string DecodedURL = SPEncode.UrlDecodeAsUrl(EncodedUrl);
            return DecodedURL;            

        }        

    }
}

在具有相同命名空间的工作流文件 (Workflow1.cs) 中,我尝试使用以下行调用上述方法:

Item.File.AbsoluteUrl();

当我尝试调用该方法时,我得到“名称 Item 在当前上下文中不存在”。我错过了参考吗?任何有关如何检索 DecodedURL 值以便我可以在我的主工作流文件中使用它的建议将不胜感激。此外,大部分代码都是从另一篇文章中复制的,但我没有足够的积分来评论原始文章。

【问题讨论】:

  • SO 上的人们无法知道 Item 是什么类型的对象,尤其是即使您的编译器无法弄清楚...更多上下文可能会有所帮助。此外,链接到您从中获取的问题也没有积分要求。
  • 您好 Alexei,感谢您的反馈。原帖可以在这里找到:stackoverflow.com/questions/5216832/…。我指的是上述链接中问题的第二个答案。我将在今天晚些时候发布其他代码

标签: c# sharepoint sharepoint-2010


【解决方案1】:

由于(基于此方法)您已经检索到正确的 SPFile 对象,您应该能够引用 url 属性。

见:https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.url(v=office.14).aspx

如果您想要绝对 URL,您可以使用 SPFile 上的 EncodedAbsUrl 字段(这也适用于 SPListItems):

用法(假设您的SPFile 对象被称为file):

string absoluteUrl = (string) file.Item[SPBuiltInFieldId.EncodedAbsUrl];

文档:https://msdn.microsoft.com/EN-US/LIBRary/microsoft.sharepoint.spbuiltinfieldid.encodedabsurl.aspx

【讨论】:

  • 您好 ElvisLikeBear,感谢您的链接,但我相信上述方法可以获取文件的站点相对 URL,我希望通过访问返回变量 DecodedURL 来获取文件的解码绝对 URL。有什么建议吗?
  • @user3400457 对不起,你是对的。更新了我的答案以反映这一点!
  • 感谢更新,但我需要在工作流中调用:public static string AbsoluteUrl(this SPFile File) 以检索 DecodedURL 值。例如类似于以下内容的内容: private void CodeActivity(SPFile File) { absoluteUrl = Utilities.AbsoluteUrl(File); }
猜你喜欢
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多