如何从 SPWEB 获取完整 URL
我有一个 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”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
WelcomePage 是 SPFolder 类型的属性,因此要获取完整的 url,您必须使用:
WelcomePage is the property of SPFolder type so to get the full url , you have to use :
SPFolder.WelcomePage 应该可以工作。如果没有,您需要在文件夹列表项的属性中设置“vti_welcomepage”。这就是 MS 在幕后所做的事情。
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.
好吧,你的问题是 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