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

标签 c# sharepoint sharepoint-2010

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

最佳答案

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

关于c# - 调用静态方法获取 SharePoint 2010 文档的绝对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128127/

相关文章:

c# - 以编程方式批准/拒绝工作流程并添加评论

c# - Double 不是可空类型

c# - 带有自定义控件的 asp.netRequiredFieldValidator

c# - GDI+ 绘制矩形很慢

sharepoint - 从支持 SSL 的 SharePoint 站点打开文件

php - 通过 PHP 和 SOAP 对 Sharepoint/Office356 进行身份验证(声明)

c# - 在 Sharepoint 2010 中从我的站点获取 Office 值(value)

c# - 将 SharePoint 文件夹和内容移动到同一文档库中的不同位置

javascript - 访问/处理每个(嵌套)对象、数组或 JSON

c# - log4net:肢解异常