如何从SPWEB获取完整的URL

时间:2011-12-20 08:21:06

标签: vb.net sharepoint sharepoint-api

我有一个VB控制台应用程序。

我想获取该页面的绝对网址。

以下是我当前的代码:

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

我想要的是完整的网址: http://mySite/blogs/myblog1/default.aspx

我如何获得“default.aspx”?

3 个答案:

答案 0 :(得分:1)

WelcomePage是SPFolder类型的属性,因此要获取完整的URL,您必须使用:

subsite.Url + "/" + subsite.RootFolder.WelcomePage;

答案 1 :(得分:1)

SPFolder.WelcomePage应该有效。如果没有,你需要设置&#34; vti_welcomepage&#34;在“文件夹”列表项的属性中。这就是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;

答案 2 :(得分:0)

好的,你的问题是SPWeb实际上没有这样的“页面”。 Default.aspx只是SPWeb容器中的一个页面。

如果您启用了发布功能,则可以使用publishWeb修改/读取默认页面,否则请尝试:

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