2011-12-30 61 views
12

假设我在URL http://webapp:1234/Lists/TestList上提供了SharePoint列表。以编程方式检索SPList URL

在代码中,我只能访问相应的SPList实例。如何以编程方式获取此SPList -Instance的URL?

的SPList类是缺少一个URL属性或类似的东西...

+1

根据你想用URL做什么,你可能真的要在列表的默认视图中的网址:'mylist.DefaultView.Url'。 – 2012-01-03 06:42:16

回答

20

您需要在列表的根文件夹的网址与该网页的网址相结合。根文件夹URL可通过SPFolder.Url和网址的绝对URL通过SPWeb.Url访问。假如你有一个list它将会像list.ParentWeb.Url + list.RootFolder.Url一样。

但是,请阅读文档,尝试它并修复正确的斜线等内容。您可能还需要从父项SPWebApplication对象中找出URL的主机名部分。请注意,由于备用访问映射,该站点可能通过多个主机名访问。

此外,SPUtility.GetFullUrl可能会派上用场,将服务器相关的URL转换为完整的URL。

+0

谢谢!忽略RootFolder属性... – 2011-12-30 16:56:30

+5

稍微短一点的版本就是简单地使用'list.RootFolder.ServerRelativeUrl'属性值。 – 2013-08-08 19:55:36

1

你可以试试这个

SPList newlist = web.Lists(Web.Url + "Lists/listname"); 
+1

...至少对文档库不起作用。 – 2013-08-08 21:28:35

+0

对于库删除“列表/” – 2014-07-21 03:52:47

+0

哈哈好,这取决于..图书馆也在列表.. – 2014-09-17 08:50:24

0

这符合我:

string sitecol= SPContext.Current.Site.Url.ToString(); 

string list= myList.DefaultView.Url.ToString(); 

string listlink = sitecol + "/" + list;