如何从 SPWEB 获取完整 URL

发布于 2024-12-21 22:56:49 字数 628 浏览 3 评论 0 原文

我有一个 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”?

I have a VB console application.

I would like to get the absolute URL of the page.

Here is my current code:

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

Right now, what I get is: http://mySite/blogs/myblog1

What I want to get is the full URL: http://mySite/blogs/myblog1/default.aspx

How can I get the "default.aspx"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

匿名的好友 2024-12-28 22:56:49

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

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

WelcomePage is the property of SPFolder type so to get the full url , you have to use :

subsite.Url + "/" + subsite.RootFolder.WelcomePage;
山田美奈子 2024-12-28 22:56:49

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;

SPFolder.WelcomePage should have worked. If it didn't you need to set the "vti_welcomepage" in the properties of the Folder list item. This is what MS does under the hood.

    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;
坠似风落 2024-12-28 22:56:49

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

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

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

Ok so your problem is that SPWeb doesnt actually have a 'page' as such. Default.aspx is simply one page inside the SPWeb container.

You can modify/read the default page using publishingWeb if you have the publishing feature enabled otherwise try this:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文