2011-04-06 80 views
6

使用ASP.NET MVC3,網址http://localhost:22713/tests#123456用下面的代碼:網址片段空

Your user agent: @Request.UserAgent<br /> 
Url: @Request.Url.AbsoluteUri<br /> 
Url fragment: @Request.Url.Fragment<br /> 

回報:

Your user agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 
Url: http://localhost:22713/tests 
Url fragment: 

爲什麼片段總是空的?我需要能夠解析服務器端的這個信息。

+0

#fragments是爲客戶端設計的,並且不會將查詢字符串發送到服務器,所以爲什麼微軟將它包含在內我不知道。從http://www.cambiaresearch.com/c4/dfdb20ae-b335-48ae-a201-f2a5a8329342/how-do-i-get-paths-and-url-fragments-from-the-httprequest-object.aspx – 2011-04-06 18:20:12

回答

10

該片段(URL中的#之後的所有內容)不會傳遞給服務器。因此,Fragment屬性在您嘗試從請求中獲取時始終爲空。

Fragment屬性通常僅在構建URL時使用。

有沒有簡單的方法來獲取服務器上的片段。通常,您必須使用JavaScript來檢索片段。

+0

I面對它與Facebook登錄集成(當用戶驗證你的應用程序時),所以我必須重定向到一個「中間頁面」,JavaScript代碼獲取access_code片段,然後發回服務器。 – 2012-11-30 08:22:56