以编程方式检索SPList URL

12
假设我有一个提供在URL上的SharePoint列表http://webapp:1234/Lists/TestList
在代码中,我只能访问相应的SPList实例。如何以编程方式获取此SPList实例的URL?
SPList类缺少URL属性或类似的东西...

1
根据您想要使用URL做什么,您可能真正需要的是列表默认视图的URL:mylist.DefaultView.Url - Chris Farmer
3个回答

23
您需要将列表的根文件夹URL与Web URL结合起来。通过SPFolder.Url可访问根文件夹URL,通过SPWeb.Url可以得到网站的绝对URL。假设您有一个list,那么它看起来像是list.ParentWeb.Url + list.RootFolder.Url
但是,请阅读文档,尝试并修复诸如正斜杠等的问题。您可能还需要从父SPWebApplication对象找出URL的主机名部分。请注意,由于备用访问映射,该站点可能可通过多个主机名访问。
此外,SPUtility.GetFullUrl可用于将服务器相对URL转换为完整URL。

5
更简洁的写法是使用 list.RootFolder.ServerRelativeUrl 属性的值。 - Vassili Altynikov

1
您可以尝试这个。
SPList newlist = web.Lists(Web.Url + "Lists/listname");

对于库,请移除“Lists/”。 - Harsh Bhavsar
@GeorgeNorberg,是的,但不建议这样做。 - Harsh Bhavsar

0

这适合我:

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

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

string listlink = sitecol + "/" + list;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接