我正在尝试检索 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/