2010-06-17 116 views
0

我需要從aspx頁面(無代碼隱藏)中獲取我的站點的當前絕對URL。 我試過$ SPUrl,但它被轉換成了一個相對的URL。獲取SharePoint絕對站點網址

<asp:Literal runat="server" text="<% $SPUrl:~Site/mypage.aspx %>" /> 

導致「/mypage.aspx」。以「http://」開頭的絕對網址是非常重要的。

<asp:Literal runat="server" text="<% $SPUrl:~SiteCollection/mypage.aspx %>" /> 

也是這樣。目標是獲得這個網址:「http://myspweb.com/mypage.aspx」作爲結果。

回答

0

你可以使用SPContext.Current.Site.Url來獲取當前網站集的絕對URL:

<%@ Import Namespace="Microsoft.SharePoint"%> 
<!-- ... -->  
<%= SPContext.Current.Site.Url %> 
1

傑森是如何得到正確的URL。

然而,有一點需要了解的是,SharePoint可能沒有真正的「真實」絕對站點URL。使用SharePoint內容數據庫,您可以將應用程序擴展到具有不同web.configs等的不同IIS應用程序。通常人們在爲員工提供Extranet(Active Directory安全性)時執行此操作,但會希望允許客戶通過Forms基於驗證。這是SharePoint將事物轉換爲相對URL的主要原因之一。

+0

SPSite.ServerRelativeUrl將爲您提供網站集中根網站的服務器相關網址。這可以解決這兩個問題。 – 2011-04-28 17:07:24

相關問題