我正在尝试检索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值的任何建议,以便我可以在我的主工作流文件中使用它将非常感激。此外,大部分代码都是从另一篇文章中复制过来的,但我没有足够的意见来评论原帖。
答案 0 :(得分:0)
由于(基于此方法)您已经检索到正确的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