调用静态方法以获取SharePoint 2010文档的绝对URL

本文关键字:URL 文档 2010 静态方法 获取 SharePoint 调用 | 更新日期: 2023-09-27 18:00:29

我正试图在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值以便在我的主工作流文件中使用它的建议都将不胜感激。此外,大部分代码是从另一篇文章中复制的,但我没有足够的分数来评论原始文章。

调用静态方法以获取SharePoint 2010文档的绝对URL

由于(基于此方法)您已经检索到正确的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