2009-08-24 93 views
1

嘗試獲取c#頁面的整個URL時,我遇到了一個小問題(?)問題。c#使用「#」獲取完整的URL

url包含「#」 - 鏈接ref char。我希望當我抓住的URL

例如。 http://localhost/site/page.aspx?var=1&var=2#link

我已經嘗試Request.URL,Request.Querystring等,它只返回到「#」 - 字符。

有沒有辦法抓住最後一部分?

在此先感謝

+0

爲什麼你需要這樣的功能?也許有解決你的問題的另一種方法。 – Juri 2009-08-24 12:38:23

+0

因爲頁面的創建者已經使用查詢字符串來傳遞密碼,因此禁用了包含#,愚蠢的密碼,我知道 – Andreas 2009-08-24 12:40:59

+0

您應該避免在查詢字符串中傳遞密碼,因爲這樣做可以讓您從查詢字符串登錄,而無需帖子。一些瀏覽器加載項(例如Google網絡加速器)可能會讓這些人認爲他們是導航而不是行爲。作爲一般規則,GET應該只顯示內容,任何改變數據或狀態的內容都應該是POST – Keith 2009-08-24 12:43:48

回答

6

你的問題是,#指定在頁面的錨,所以瀏覽器認爲:

http://localhost/site/page.aspx?var=1&var=2

,然後查找在頁面

<a name="link">anchor</a> 

由於這是客戶端,您需要將#從URL中轉義出來 - 因爲瀏覽器已將其剝離,所以無法在服務器上獲取它。

8

這不可能僅使用服務器代碼。 #之後的部分根本不在請求中發送,它永遠不會離開瀏覽器。

如果您希望#之後的部分必須在將請求發送到服務器之前使用Javascript進行復制,並將值放入查詢字符串中。

0

你確定#之後的東西沒有發送到服務器。我很確定我幾年前用ajax-app做了一個測試,在那裏可以複製url並將它發送給沒有javascript的人,只需在url中使用javascript瀏覽時修改後面的內容即可。

這是在PHP和瀏覽器可能是IE6。