2011-12-30 3 views
12

Допустим, у меня есть список SharePoint, указанный по URL-адресу http://webapp:1234/Lists/TestList.Получить URL-адрес SPList программным путем

В коде у меня есть доступ к соответствующему SPList-экземпляру. Как я могу получить URL-адрес этого SPList -Instance программно?

SPList класс отсутствует свойство URL или что-то подобное ...

+1

В зависимости от того, что вы хотите делать с URL, вы можете действительно хотите URL зрения по умолчанию в списке : 'mylist.DefaultView.Url'. –

ответ

20

Вы должны объединить корневую папку URL в списке с веб URL. URL-адрес корневой папки можно получить через SPFolder.Url и абсолютный URL веб-страницы через SPWeb.Url. Если у вас есть list, это будет что-то вроде list.ParentWeb.Url + list.RootFolder.Url.

Однако ознакомьтесь с документацией, попробуйте и исправьте такие вещи, как правильные косые черты и т. Д. Вам также может понадобиться выяснить часть имени хоста URL-адреса из родительского объекта SPWebApplication. Обратите внимание, что сайт может быть доступен через несколько имен хостов из-за альтернативных сопоставлений доступа.

Кроме того, SPUtility.GetFullUrl может пригодиться для преобразования URL-адреса сервера в полный URL-адрес.

+0

Спасибо! Изменилось свойство RootFolder ... –

+5

Немного более короткая версия - просто использовать значение свойства list.RootFolder.ServerRelativeUrl. –

1

вы можете попробовать этот

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

... которые, по крайней мере, не будут работать для библиотек документов. –

+0

Для библиотек Удалить «Списки /» –

+0

ха-ха хорошо, это зависит. Библиотеки также находятся в списке. –

0

это подходит для меня:

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

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

string listlink = sitecol + "/" + list; 
Смежные вопросы