2011-04-06 23 views
6

mediante ASP.NET MVC3, la url http://localhost:22713/tests#123456 con el siguiente código:fragmento de URL está vacía

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

devuelve:

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: 

Por qué el fragmento siempre vacía? Necesito poder analizar esta información en el lado del servidor.

+0

#fragmentos están destinados para el cliente y no se envían en la cadena de consulta al servidor, entonces ¿por qué Microsoft lo ha incluido? No lo sé. de http://www.cambiaresearch.com/c4/dfdb20ae-b335-48ae-a201-f2a5a8329342/how-do-i-get-paths-and-url-fragments-from-the-httprequest-object.aspx –

Respuesta

10

El fragmento (todo después del # en una url) no pasa al servidor. Por lo tanto, la propiedad Fragment siempre estará vacía cuando intente obtenerla de una solicitud.

La propiedad Fragment generalmente solo se utiliza al construir URL.

No hay una manera fácil de obtener el fragmento en el servidor. Normalmente, debe usar javascript para recuperar el fragmento.

+0

I lo enfrenté con la integración de inicio de sesión de Facebook (cuando el usuario autenticó su aplicación), así que debo redirigirme a una "página intermedia" donde el código JavaScript obtiene el fragmento access_code y luego enviarlo de vuelta al servidor. –

Cuestiones relacionadas