2013-12-10 103 views
0

如何獲得當前請求的url如何在C#中獲取Sharepoint 2013中的當前請求url?

我輸入瀏覽器:

http://srv-1/sites/1001/Account Documents/Order

但在Page_Load中在我的控制,我得到

HttpContext.Current.Request.Url = http://srv-1/_layouts/15/start.aspx

Page.Request.RawUrl = Page.Request.RawUrl

我需要檢索信息:/Account Documents/Order

回答

1

出現這種情況是因爲Minimal Download Strategy功能。您的網址由SharePoint重寫。

最簡單的解決方案是禁用此功能,但你也可以嘗試通過SPUtility.OriginalServerRelativeRequestUrl屬性或重構你的代碼不使用url,但當前庫或其他東西獲取url。

+0

它仍然只返回「srv-1/sites/1001/_layouts/15/start.aspx」;我也需要這個:/賬戶文件/訂單 –

1

的SharePoint做它自己的URL重寫,如果你想嘗試,例如用於頁面

的解決方案是使用上的特殊屬性[SPUtility類 - SPUtility.OriginalServerRelativeRequestUrl] [1]

http://blog.voyta.net/2012/07/09/how-to-get-original-request-url-in-sharepoint/

該屬性在重寫之前返回原始URL,如果您需要獲取從中加載應用程序頁面的子網站,這非常有用。

由於此URL是服務器相對的,得到完整的URL,你可以使用:

SPUtility.GetFullUrl(SPContext.Current.Site, SPUtility.OriginalServerRelativeRequestUrl);

如果您需要使用一些附加參數重定向到相同的URL,這會非常有用。

謝謝

+0

它仍然只返回「http://srv-1/sites/1001/_layouts/15/start.aspx」,我也需要這個:/賬戶文件/訂單 –

相關問題