Je sais que du côté client (javascript), vous pouvez utiliser windows.location.hash mais je n'ai pas trouvé de toute façon pour accéder du côté serveur.
asp.net
url
fragment-identifier
Ricky Supit
la source
la source
Réponses:
Nous avons eu une situation où nous devions conserver le hachage d'URL dans les post backs ASP.Net. Comme le navigateur n'envoie pas le hachage au serveur par défaut, la seule façon de le faire est d'utiliser du Javascript:
Lorsque le formulaire est soumis, saisissez le hash (
window.location.hash
) et stockez-le dans un champ de saisie caché côté serveur. Mettez-le dans un DIV avec un identifiant de "urlhash
" afin que nous puissions le trouver facilement plus tard.Sur le serveur, vous pouvez utiliser cette valeur si vous avez besoin d'en faire quelque chose. Vous pouvez même le changer si vous en avez besoin.
Au chargement de la page sur le client , vérifiez la valeur de ce champ masqué. Vous voudrez le trouver par le DIV dans lequel il est contenu car l'ID généré automatiquement ne sera pas connu. Oui, vous pourriez faire une supercherie ici avec .ClientID mais nous avons trouvé plus simple d'utiliser simplement le wrapper DIV car il permet à tout ce Javascript de vivre dans un fichier externe et d'être utilisé de manière générique.
Si le champ de saisie masqué a une valeur valide, définissez-la comme hachage d'URL (
window.location.hash again
) et / ou effectuez d'autres actions.Nous avons utilisé jQuery pour simplifier la sélection du champ, etc ... dans l'ensemble cela finit par être quelques appels jQuery, un pour sauvegarder la valeur, et un autre pour la restaurer.
Avant de soumettre:
Au chargement de la page:
IsHashValid()
peut vérifier "undefined
" ou d'autres choses que vous ne voulez pas gérer.Assurez-vous également de l'utiliser de
$(document).ready()
manière appropriée, bien sûr.la source
RFC 2396 section 4.1:
(italiques ajoutés)
la source
C'est parce que le navigateur ne transmet pas cette partie au serveur, désolé.
la source
Le seul choix est probablement de le lire côté client et de le transférer manuellement sur le serveur (GET / POST / AJAX). Cordialement Artur
Vous pouvez également voir comment jouer avec le bouton de retour et l'historique du navigateur sur Malcan
la source
Juste pour écarter la possibilité que vous n'essayiez pas réellement de voir le fragment sur un GET / POST et que vous vouliez réellement savoir comment accéder à cette partie d'un objet URI que vous avez dans votre code côté serveur, c'est sous Uri. ( Documents MSDN ).
la source
Solution possible pour les requêtes GET:
Nouveau format de lien:
http://example.com/yourDirectory?hash=video01
Appelez cette fonction vers le haut du contrôleur ou
http://example.com/yourDirectory/index.php
:la source