Eu sei que no lado do cliente (javascript) você pode usar o windows.location.hash, mas não conseguiu encontrar o acesso do lado do servidor.
asp.net
url
fragment-identifier
Ricky Supit
fonte
fonte
Respostas:
Tivemos uma situação em que precisávamos persistir o hash da URL nas postagens do ASP.Net. Como o navegador não envia o hash para o servidor por padrão, a única maneira de fazer isso é usar algum Javascript:
Quando o formulário for enviado, pegue o hash (
window.location.hash
) e armazene-o em um campo de entrada oculto do servidor Coloque isso em um DIV com o ID "urlhash
" para que possamos encontrá-lo facilmente mais tarde.No servidor, você pode usar esse valor se precisar fazer algo com ele. Você pode até mudar se precisar.
No carregamento da página no cliente , verifique o valor deste campo oculto. Você deseja encontrá-lo pelo DIV em que está contido, pois o ID gerado automaticamente não será conhecido. Sim, você pode fazer alguns truques aqui com .ClientID, mas achamos mais simples usar o DIV do wrapper, pois permite que todo esse Javascript viva em um arquivo externo e seja usado de maneira genérica.
Se o campo de entrada oculto tiver um valor válido, configure-o como o URL hash (
window.location.hash again
) e / ou execute outras ações.Usamos o jQuery para simplificar a seleção do campo, etc ... tudo isso acaba sendo algumas chamadas ao jQuery, uma para salvar o valor e outra para restaurá-lo.
Antes de enviar:
No carregamento da página:
IsHashValid()
pode verificar "undefined
" ou outras coisas com as quais não deseja lidar.Além disso, certifique-se de usar
$(document).ready()
adequadamente, é claro.fonte
Seção 4.1 da RFC 2396 :
(enfase adicionada)
fonte
Isso ocorre porque o navegador não transmite essa parte ao servidor, desculpe.
fonte
Provavelmente, a única opção é lê-lo no lado do cliente e transferi-lo manualmente para o servidor (GET / POST / AJAX). Atenciosamente Artur
Você também pode ver como jogar com o botão voltar e o histórico do navegador em Malcan
fonte
Apenas para descartar a possibilidade de você não estar realmente tentando ver o fragmento em um GET / POST e realmente querer saber como acessar a parte de um objeto URI que você possui no código do servidor, ele está em Uri.Fragment ( Documentos do MSDN ).
fonte
Solução possível para solicitações GET:
Novo formato de link:
http://example.com/yourDirectory?hash=video01
Chame esta função na parte superior do controlador ou
http://example.com/yourDirectory/index.php
:fonte