Как получить полный URL от SPWEB - PullRequest
1 голос
/ 20 декабря 2011

У меня есть консольное приложение VB.

Я хотел бы получить абсолютный URL-адрес страницы.

Вот мой текущий код:

Using siteCollectSPSite As New SPSite("http://mySite")
Dim blogPostSpList As SPList

'Get only the subsite of <locale/blogs>
Using blogSiteSPWeb As SPWeb = siteCollectSPSite.OpenWeb("/blogs")

For Each subsite As SPWeb In blogSiteSPWeb.Webs
    Console.WriteLine("Subsite title:   " & subsite.Url)
    '......
Next

Прямо сейчас я получаю: http://mySite/blogs/myblog1

Я хочу получить полный URL-адрес: http://mySite/blogs/myblog1/default.aspx

Как я могу получить "default.aspx"?

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

WelcomePage является свойством типа SPFolder, поэтому для получения полного URL необходимо использовать:

subsite.Url + "/" + subsite.RootFolder.WelcomePage;
1 голос
/ 20 декабря 2011

SPFolder.WelcomePage должен был работать.Если это не так, вам нужно установить «vti_welcomepage» в свойствах элемента списка папок.Это то, что MS делает под капотом.

    if (this.m_strRedirectUrl == null)
    {
        string text = (string)this.Properties["vti_welcomepage"];
        if (text == null)
        {
            text = string.Empty;
        }
        this.m_strRedirectUrl = text;
    }
    return this.m_strRedirectUrl;
0 голосов
/ 20 декабря 2011

Хорошо, ваша проблема в том, что SPWeb фактически не имеет «страницы» как таковой. Default.aspx - это просто одна страница внутри контейнера SPWeb.

Вы можете изменить / прочитать страницу по умолчанию, используя publishingWeb, если у вас включена функция публикации, в противном случае попробуйте следующее:

http://curia.me/post/2011/05/20/SharePoint-how-change-the-default-page-of-a-SPWeb.aspx

...