2011-12-20 25 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コンテナ内の単なる1ページです。

あなたは公開機能は、そうでない場合はこれを試して有効にしている場合publishingWebを使用して、デフォルトのページを読む/変更することができます。

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

+0

こんにちは!お返事をありがとうございます。しかし、私が完全なURLを取得しようとしているサイトは、PublishingWebではありません。 : – JADE

+0

リンクを見て、これを行うための他のオプションを持っています –

1

WelcomePageは、あなたが持っているので、完全なURLを取得するためにSPFolder型のプロパティです使用する:

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

私はそれを試しました..しかし、WelcomePageは値がありません:( – JADE

+0

"値がありません"とはどういう意味ですか? empty' –

+0

それはこれがチームサイトだけでなく、発行サイトでは私のために働い – JADE

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

に使用リフレクター –

+0

ILSPyリフレクターがフリーでないILSPyが均等に良いですが、空の文字列 –

+0

私が知っている - ?。?。。。また、ドットをチェックアウト.net obfuscator、ILSpyと同じこと。 –

関連する問題