2011-12-20 127 views
1

我有一個VB控制檯應用程序。如何從SPWEB獲取完整的URL

我想獲得頁面的絕對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的」?

回答

0

好,所以你的問題是,SPWeb並沒有實際上有一個「頁面」。 Default.aspx只是SPWeb容器中的一個頁面。

可以修改/讀取使用publishingWeb如果你有發佈功能啓用,否則試試這個默認頁面:

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

+0

嗨盧克!感謝您的回覆。但是,我試圖獲取完整URL的網站不是PublishingWeb。 :( – JADE 2011-12-20 08:51:07

+0

看看這個鏈接然後,它有其他選擇做這個 – 2011-12-20 09:06:27

1

WelcomePage是SPFolder類型的屬性,以便獲得完整的URL,你有使用:

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

我試過了..但是WelcomePage沒有價值:( – JADE 2011-12-20 09:19:21

+0

你是什麼意思「沒有價值」?'null'?'字符串。空嗎?? – 2011-12-20 09:37:13

+0

@moontear它是一個空字符串 – JADE 2011-12-20 09:41:41

1

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

使用的反射器? – 2011-12-20 14:52:55

+0

ILSPy。反射器不是免費的ILSPy同樣好 – 2011-12-20 16:29:00

+0

我知道 - 也檢查點.net混淆器,與ILSpy相同。 – 2011-12-20 16:34:54